2017-11-28 2 views
0

Pythonシェルを使用している場合、追加された変数のデータ型のデータ型を知りたい場合は、次の文を使用できます。Javaで変数型を追加した後でそれを知るには?

>>> y=5 
>>> x=3.56 
>>> type(x+y) 
<class 'float'> 

ここで、私はJavaでこれをどうやって行うのですか?私は以下の文について尋ねることはしていない。

String str = "test"; 
String type = str.getClass().getName(); 

これは、すでに宣言しているデータ型のみを示しています。しかし、私は、追加された変数のデータ型のデータ型を尋ねています。

答えて

3

Javaは静的型言語であり、Pythonは動的型言語です。
これは、Javaでは、すべての変数名(型とともに)を明示的に宣言する必要があることを意味します。変数名に間違った型のオブジェクトを代入しようとすると、型の例外が発生します。つまり、Javaは静的型付けされた言語であるといえます。

Pythonでは、何も宣言しません。代入文は、名前をオブジェクトにバインドし、そのオブジェクトは任意の型にすることができます。 1つのタイプのオブジェクトに名前が割り当てられている場合、後で別のタイプのオブジェクトに割り当てることができます。つまり、Pythonは動的に型指定された言語であるといえます。

0

多分このような何か?

((Object)(2.4 + 2)).getClass().getName(); 

しかし、Javaでは、あなたは厳密に操作のタイプを指定しました。

5.6.2バイナリ数値昇格

オペレータが数値型の値を表す必要がありそれぞれが オペランド、一対のバイナリ数値昇格を印加すると、 以下の規則が使用して、順番に、適用します

いずれかのオペランドがdouble型の場合、他方はdouble型に変換されます。

そうでない場合、いずれかのオペランドがfloat型である場合、もう一方のオペランドがfloat型に変換されます( )。

一方、いずれかのオペランドがlong型の場合、もう一方のオペランドはlongに変換されます( )。

それ以外の場合は、両方のオペランドがint型に変換されます。

+0

ありがとうございました**完全な答え** –

+0

答えとしてマーク:) –

関連する問題