在Java中获取相对内部类名
而我可以得到内部类的规范(“绝对”)名称在Java中获取相对内部类名,java,reflection,Java,Reflection,而我可以得到内部类的规范(“绝对”)名称 package u.v; class x { static class xx { static class xxx { } } } 我还可以得到类名的最后一个组件 public class a{ public static void main(String[] args) { System.out.println(x.xx.xxx.class.getCanonicalName()); //u
package u.v;
class x {
static class xx {
static class xxx { }
}
}
我还可以得到类名的最后一个组件
public class a{
public static void main(String[] args) {
System.out.println(x.xx.xxx.class.getCanonicalName()); //u.v.x.xx.xxx
}
}
我怎样才能优雅地获得一个相对的类名呢
public static void main(String[] args) {
System.out.println(x.xx.xxx.class.getSimpleName()); //xxx
}
以下字符串操作应完成此工作:
xxx.class.getCanonicalName().substring(x.class.getCanonicalName().length+1)
+1
表示最后一个外部类名和感兴趣类名之间的
(点) 以下字符串操作应该可以完成这项工作:
xxx.class.getCanonicalName().substring(x.class.getCanonicalName().length+1)
+1
表示最后一个外部类名和感兴趣类名之间的
(点) 您可以使用此功能。+1
用于额外的
Utils.relativeClassName(x.xx.xxx.class, x.class); //xx.xxx
公共静态字符串getRelativeClassName(类内部,类外部){
int length=outer.getCanonicalName().length();
返回inner.getCanonicalName()子字符串(长度+1);
}
您可以使用此功能。+1
用于额外的
Utils.relativeClassName(x.xx.xxx.class, x.class); //xx.xxx
公共静态字符串getRelativeClassName(类内部,类外部){
int length=outer.getCanonicalName().length();
返回inner.getCanonicalName()子字符串(长度+1);
}
@T.J.Crowder我也很明显;)@durron597:最好删除重复项。@T.J.Crowder我也是,显然;)@durron597:最好删除重复项。