問題タブ [autoboxing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - オートボクシングのパフォーマンスへの影響
通常、コンパイラはボクシングとアンボクシングを実行するコードを生成します。しかし、ボックス化された値が必要ない場合、コンパイラは何をしますか?(Oracle標準)コンパイラはそれを最適化するのに十分賢いですか?
この方法を見てください:
関連する情報は。だけarray.length
なので、たとえば配列の各値をボックス化することは無意味です。このコードのように:
コンパイラは実際に配列の各値をボックス化するためのコードを挿入しますか?
java - java:boolean instanceOf Boolean?
私は少し混乱しています。引数としてオブジェクトを受け取る関数があります。しかし、プリミティブを渡すだけで、ブールプリミティブをブールオブジェクトとして認識しても、コンパイラは文句を言いません。どうしてこんなことに?
java - オートボクシング/拡大はShorta= 3で発生しますが、Float a=3では発生しません。
次のコードが機能しないことを理解しています
Float a = Integer.valueOf(3)として変換されるためです。LHSにはFloat参照があり、RHSには互換性のないIntegerオブジェクトがあります。だが :
1.1。
これは機能しますが、ここでも、LHSにShortリファレンスがあり、RHSにIntegerオブジェクトがあります。
2.2。
Float a=(Float) 3
3をタイプキャストしていなかった場合は、Integer.valueOf(3)として変換されます。さて、それはFloat.valueOf(3)として変換されますか?
java - ブール値、条件演算子、オートボクシング
なぜこれが投げるのですかNullPointerException
これはしませんが
?
解決策は、箱から出されるのを避けるためにfalse
置き換えるBoolean.FALSE
ことです-これは不可能です。しかし、それは問題ではありません。問題はなぜですか?特に2番目のケースのこの動作を確認するJLSの参照はありますか?null
boolean
java - このコードでnullポインタ例外が発生するのはなぜですか?
出力:スレッド「main」の例外java.lang.NullPointerException at Test.go(Test.java:12)at Test.main(Test.java:8)
java - 自動ボックス化解除せずに、キャストされたオブジェクトをプリミティブ型に簡潔に変換するには、括弧をどこに置きますか?
自動ボックス化解除を使用すると、次のステートメントが自動的に機能します。
Integer
しかし、1 行で anから an hereに明示的に変換したい場合int
、括弧をどこに置く必要がありますか?
java - Javaの自動ボクシング/アンボクシングの奇妙さ
重複の可能性:
ブール値、条件演算子、オートボクシング
Java、Googleコレクションライブラリ。AbstractIteratorに問題がありますか?
以下のコードはNPEを生成します。
例外なく「null」を正しく出力するには、次のコードが必要です。
最初の例では、「test」がボックス化されていない(ネイティブintに変換されている)ことは明らかですが、なぜですか?そして、なぜ三項演算子の他の式を変更すると(2番目の例のように)それが修正されるのですか?両方の例の内容がボックス化およびボックス化解除される正確な時期、内容、および理由について、誰かが何らかの物語を提供できますか?
java - Rhino、typeof、オートボクシングの混乱
SmartfoxServer (Rhino を使用) のサーバー側拡張機能には、次のような Javascript がありました。
これによりエラーが発生しました。どうしたの?プロパティは JavaMap
であるため、数値が入力されると、java.lang.Double
オブジェクトに自動ボックス化されます。したがって、それを取得して に格納するとresponse["xpos"]
、結果は通常の Javascript の数値ではなく、JavaObject
型の になりjava.lang.Double
ます。関数はそれを処理するためのJSON.stringify
ものではなく、クラッシュしました。
次のようなハックで修正しました:
より良い方法はありますか?
java - ブール値 != false
Java では、通常、次のように言います。
if(someBool != false)
と同じです
if(someBool)
しかし、が but someBool
型ではなく、その値が である場合はどうなるでしょうか?boolean
Boolean
null
java - Scala オートボクシングと Java Map
type の引数を取る Java メソッドがありますMap<Long, Foo>
。Scala 2.8.1 でそのメソッドの単体テストを作成し、リテラルを渡そうとしていMap[Long, Foo]
ます。
私のコードは次のようになります。
コンパイラは私に次のエラーを与えています:
私もそれを試しました
と
エラーが発生しました:
どうすればいいですか?