2011-11-03 16 views
9

Statik değişkenli bir Java sınıfım varYansıma kullanarak statik son değişkene erişme

package com.mytest 
public class MyClass{ 
    public static final TextClass TEXT_CLASS = new TextClass(); 
} 

Yansımayı kullanarak TEXT_CLASS nesnelerine nasıl erişebilirim?

("com.mytest.MyClass.TEXT_CLASS" dizilim var. Nesneye erişmem gerekiyor.)

cevap

24

, normal alanlar tamamen aynı şekilde yapılır, sadece (Field.get() yönteme herhangi bir argüman geçmesine gerek yoktur bir boş gösterebilirsiniz).

bu deneyin:

Object getFieldValue(String path) throws Exception { 
    int lastDot = path.lastIndexOf("."); 
    String className = path.substring(0, lastDot); 
    String fieldName = path.substring(lastDot + 1); 
    Class myClass = Class.forName(className); 
    Field myField = myClass.getDeclaredField(fieldName); 
    return myField.get(null); 
} 
İlgili konular