在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:最好删除重复项。