タグ付けされた質問 「casting」

キャストは、変換が許可されている場合、オブジェクト型が明示的に別の型に変換されるプロセスです。このプロセスにより、値が変化する可能性があります。

15
整数から長整数への変換
リフレクションを使用してフィールドの値を取得する必要があります。たまたま、フィールドのデータ型が何であるかが常にわかりません。そのため、またコードの重複を避けるために、次のメソッドを作成しました。 @SuppressWarnings("unchecked") private static <T> T getValueByReflection(VarInfo var, Class<?> classUnderTest, Object runtimeInstance) throws Throwable { Field f = classUnderTest.getDeclaredField(processFieldName(var)); f.setAccessible(true); T value = (T) f.get(runtimeInstance); return value; } そして、この方法を次のように使用します: Long value1 = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance); または Double[] value2 = getValueByReflection(inv.var2(), classUnderTest, runtimeInstance); 問題は、私がキャストIntegerすることができないようですLong: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long …
108 java  reflection  casting 

5
Kotlin:リストキャストの操作方法:未チェックのキャスト:kotlin.collections.List <Kotlin.Any?>からkotlin.colletions.List <Waypoint>
List最初または最後のアイテム(経由ポイント)ではないaのすべてのアイテムを返す関数を書きたいのですが。関数はList&lt;*&gt;入力としてジェネリックを取得します。結果は、リストの要素が次のタイプの場合にのみ返されますWaypoint。 fun getViaPoints(list: List&lt;*&gt;): List&lt;Waypoint&gt;? { list.forEach { if(it !is Waypoint ) return null } val waypointList = list as? List&lt;Waypoint&gt; ?: return null return waypointList.filter{ waypointList.indexOf(it) != 0 &amp;&amp; waypointList.indexOf(it) != waypointList.lastIndex} } をにキャストするList&lt;*&gt;とList&lt;Waypoint&gt;、次の警告が表示されます。 未チェックのキャスト:kotlin.collections.Listからkotlin.colletions.List それ以外の場合の実装方法がわかりません。この警告なしでこの関数を実装する正しい方法は何ですか?
108 list  generics  casting  kotlin 

8
Java Class.cast()とキャスト演算子
Cスタイルのキャストオペレーターの弊害についてC ++の時代に教えられた私は、Java 5でメソッドjava.lang.Classが取得されたことを最初に知って嬉しく思いましたcast。 ようやく、キャスティングを処理するオブジェクト指向の方法があると思いました。 結局のところ、C ++ Class.castとは異なりstatic_castます。もっと似ていreinterpret_castます。予想される場合はコンパイルエラーを生成せず、代わりに実行時まで延期します。以下は、さまざまな動作を示す簡単なテストケースです。 package test; import static org.junit.Assert.assertTrue; import org.junit.Test; public class TestCast { static final class Foo { } static class Bar { } static final class BarSubclass extends Bar { } @Test public void test ( ) { final Foo foo = new Foo( …

2
Java 6とJava 7の自動ボックス化解除の違い
Java SE 6とJava SE 7の自動ボックス化解除動作の違いに気付きました。なぜかと思います。これら2つのバージョン間でのこの動作の変更に関するドキュメントが見つからないためです。 以下に簡単な例を示します。 Object[] objs = new Object[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; これは、Java SE 7のjavacで正常にコンパイルされます。ただし、コンパイラに「-source 1.6」引数を指定すると、最後の行でエラーが発生します。 inconvertible types found : java.lang.Object required: int Java SE 6をダウンロードして、ネイティブバージョン6コンパイラー(-sourceオプションなし)でコンパイルしてみました。それは同意し、上記と同じエラーを出します。 だから何を与えるのですか?いくつかの実験から、Java 6のボックス化解除では、(コンパイル時に)ボックス化されたタイプの値のみをボックス化解除できるように思われます。たとえば、これは両方のバージョンで機能します。 Integer[] objs = new Integer[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; したがって、Java 6と7の間でボックス化解除機能が強化され、値が適切なボックス化されたタイプであることを(コンパイル時に)認識せずに、1度にオブジェクトタイプをキャストおよびボックス化解除できるようになりました。ただし、Java …
107 java  casting  java-7  unboxing 

7
「is」とnullチェック付きのキャストキャスト
私はこれを回すことをリシャーパーが提案していることに気づきました: if (myObj.myProp is MyType) { ... } これに: var myObjRef = myObj.myProp as MyType; if (myObjRef != null) { ... } なぜこの変更を提案するのですか?私は最適化の変更とコード削減の変更を提案するResharperに慣れていますが、これは私の単一のステートメントを取り、それを2行に変えたいと思っているようです。 MSDNによると: ある 表現次の両方の条件が満たされている場合は、trueと評価されます。 式がnullではありません。式はtypeにキャストできます。つまり、フォームのキャスト式は(type)(expression)例外をスローせずに完了します。 私はそれを読み違えているのisでしょうか、それともまったく同じチェックを行わないのですか?nullチェック用に別のローカル変数を明示的に作成する必要がない1行だけでですか?
106 c#  .net  casting  resharper 

1
タイムスタンプの日付から1日を引く
PostgresqlにDatagripを使用しています。タイムスタンプ形式の日付フィールドを持つテーブルがあります(ex: 2016-11-01 00:00:00)。次のことができるようになりたい: 数学演算子を適用して1日を減算します 今日の時間枠に基づいてフィルタリングします-130日 スタンプのhh / mm / ss部分なしで表示する(2016-10-31) 現在の開始クエリ: select org_id, count(accounts) as count, ((date_at) - 1) as dateat from sourcetable where date_at &lt;= now() - 130 group by org_id, dateat ((date_at)-1)1行目の句の結果は次のとおりです。 [42883]エラー:演算子が存在しません:タイムゾーンのないタイムスタンプ-整数ヒント:指定された名前と引数のタイプに一致する演算子がありません。明示的な型キャストを追加する必要があるかもしれません。位置:69 このnow()句は、同様のメッセージを生成します。 [42883]エラー:演算子が存在しません:タイムゾーン付きのタイムスタンプ-整数ヒント:指定された名前と引数のタイプに一致する演算子がありません。明示的な型キャストを追加する必要があるかもしれません。ポジション: ... 型キャストのオンラインガイドは、非常に役に立ちません。入力をいただければ幸いです。
105 sql  postgresql  casting 

5
Javaキャストではオーバーヘッドが発生しますか?どうして?
あるタイプのオブジェクトを別のタイプにキャストするときにオーバーヘッドはありますか?または、コンパイラはすべてを解決し、実行時にコストはかかりませんか? これは一般的なことですか、それともさまざまなケースがありますか? たとえば、Object []の配列があり、各要素の型が異なる可能性があるとします。ただし、たとえば、要素0はDouble、要素1はStringであることを常に確信しています。(私はこれが間違った設計であることを知っていますが、私がこれをしなければならなかったと仮定しましょう。) Javaの型情報は実行時に保持されますか?または、コンパイル後にすべてが忘れられ、(Double)elements [0]を実行した場合、ポインタをたどり、それらの8バイトをdoubleとして解釈します。 Javaで型がどのように行われるかについては非常に不明確です。本や記事についての推薦があれば、感謝します。

4
クラスにカスタムキャストサポートを提供するにはどうすればよいですか?
クラスを他の型にキャストするためのサポートを提供するにはどうすればよいですか?たとえば、を管理する独自の実装があり、プライベートメンバーを返すだけのbyte[]クラスをにキャストさせたい場合、どうすればbyte[]よいですか? これも文字列にキャストできるようにするのは一般的な方法ですか、それともオーバーライドToString()(またはその両方)だけにする必要がありますか?
102 c#  casting 

13
SQLエラー「ORA-01722:無効な番号」
誰かのための非常に簡単なもの、次の挿入は私に与えています ORA-01722:番号が無効です どうして? INSERT INTO CUSTOMER VALUES (1,'MALADY','Claire','27 Smith St Caulfield','0419 853 694'); INSERT INTO CUSTOMER VALUES (2,'GIBSON','Jake','27 Smith St Caulfield','0415 713 598'); INSERT INTO CUSTOMER VALUES (3,'LUU','Barry','5 Jones St Malvern','0413 591 341'); INSERT INTO CUSTOMER VALUES (4,'JONES','Michael','7 Smith St Caulfield','0419 853 694'); INSERT INTO CUSTOMER VALUES (5,'MALADY','Betty','27 Smith St …

3
TypeScriptのインターフェイスにオブジェクトをキャストします
Expressのリクエストの本文(body-parserミドルウェアを使用)からインターフェイスにコードをキャストしようとしていますが、型の安全性を強制していません。 これは私のインターフェースです: export interface IToDoDto { description: string; status: boolean; }; これは私がキャストしようとしているコードです: @Post() addToDo(@Response() res, @Request() req) { const toDo: IToDoDto = &lt;IToDoDto&gt; req.body; // &lt;&lt;&lt; cast here this.toDoService.addToDo(toDo); return res.status(HttpStatus.CREATED).end(); } そして最後に、呼び出されているサービスメソッド: public addToDo(toDo: IToDoDto): void { toDo.id = this.idCounter; this.todos.push(toDo); this.idCounter++; } インターフェイス定義との一致に近づかない引数も含めて、どのような引数でも渡すことができ、このコードは正常に機能します。応答本文からインターフェイスへのキャストが不可能な場合、JavaやC#のように実行時に例外がスローされると思います。 TypeScriptキャストには存在せず、Type Assertionのみが存在することを読みました。そのため、オブジェクトが型xであることがコンパイラに通知されるだけなので、...間違っていますか?型安全性を実施および確保するための正しい方法は何ですか?



14
キャストを避ける必要があるのはなぜですか?[閉まっている]
休業。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 この質問を改善する コーディングの習慣が不十分であり、パフォーマンスが低下する可能性があるという印象を受けているため、一般的には型をできるだけキャストしないようにします。 しかし、誰かが私になぜそれが正確にそうであるかを説明するように頼んだら、私はおそらくそれらをヘッドライトの中で鹿のように見るでしょう。 なぜ/いつキャストが悪いのですか? それはJava、C#、C ++の一般的なものですか、それともすべての異なるランタイム環境が独自の条件でそれを処理しますか? 任意の言語の詳細は大歓迎です。たとえば、C ++ではなぜ悪いのですか?
97 c#  java  c++  casting 

2
なぜエイリアス関数を入力してキャストせずに使用できるのですか?
Goで、新しいタイプを定義する場合: type MyInt int その後MyInt、intを期待する関数にa を渡すことはできません。逆も同様です。 func test(i MyInt) { //do something with i } func main() { anInt := 0 test(anInt) //doesn't work, int is not of type MyInt } いいよ しかし、なぜ同じことが関数に当てはまらないのですか?例えば: type MyFunc func(i int) func (m MyFunc) Run(i int) { m(i) } func run(f MyFunc, i int) …
97 types  casting  go 

7
.NET 2.0でList <int>をList <string>にキャストする
あなたはキャストすることができますList&lt;int&gt;にList&lt;string&gt;何とか? ループして.ToString()を実行できることはわかっていますが、キャストは素晴らしいです。 私はC#2.0を使用しています(LINQはありません)。
96 c#  generics  casting 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.