以下は、MainClass.javaにリストされているコードです。MyClass.classとは何ですか?
public class MainClass {
public static void main(String[] args) {
System.out.println("main started...");
Class c = MyClass.class ;
//this class variable seems to be public static.
//But, as it is clearly visible in the MyClass,
//no reference variable is declared.
//My problem is that from where this class variable
//came from.
//i also check out the Object.java file, but it also don't
//have any public static class variable of Class class
//like there is
//out (instance of PrintStream class) in System class.
//Hope all u mindoverflow guys help me to sort out
//this probz.
try {
Class.forName(c.getName()) ;
System.out.println("classloader of MyClass : " + MyClass.class.getClassLoader());
System.out.println("classloader of MyClass : " + String.class.getClassLoader());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("main ended...");
}
}
class MyClass{
static{
System.out.println("static block of MyClass class.");
}
}
のthnx coobird ... 私は記事が非常に有用であることが判明。 :)
しかし、私の知識だけに限定されliterealsについて:
int i = 5 ; //here 5 is an integer literal
float f = 5.6f ; //here 5.6f is a float literal
のみ非プリミティブliterealを、私は知っているuとジョンスキート、
String str = "java" ; //"java" is a String litereal
とクラスリテラルであります私には非常によく分かります。
さらにリテラルがjavaにありますか?
- プリミティブリテラル
- 文字列リテラル
- クラスリテラル
- ヌル - :
は がそのような議論のとおり、総リテラルは以下のように分類され...合意しました
は、いくつかのより多くのリテラル(少し長いリストを作成する:))
私はdecomiplerを使用してMainClass.classをコンパイルするとき、2クラス タイプ静的変数が(だってすることができるが、私がありますクラスリテラルを2回使用しています)が自動的に追加されますが、コード内で が使用されていませんでした。また、両方のクラスリテラルは、私がjavaファイルで使用したクラスファイルから直接置き換えられます。
私のコード: - :MyClass.class
はタイプClass<MyClass>
のオブジェクトを与える書き方
import java.io.PrintStream;
public class MainClass
{
public MainClass()
{
}
public static void main(String args[])
{
System.out.println("main started...");
Class c = MyClass;
try
{
Class.forName(c.getName());
System.out.println((new StringBuilder("classloader of MyClass : ")).append(MyClass.getClassLoader()).toString());
System.out.println((new StringBuilder("classloader of MyClass : ")).append(java/lang/String.getClassLoader()).toString());
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
System.out.println("main ended...");
}
static Class class$0;
static Class class$1;
}
ヌルについてはどうですか? –
trueおよびfalse、および文字リテラル(char c = '\ n')はどうですか?http://java.sun.com/docs/books/jls/third_edition/html/lexicalを参照してください。 .html#3.10リテラルタイプの完全なリストについては –
ですが、リストにはクラスリテラルがありません。なぜですか? – mogli