我有两个类,它们是抽象类的子类A:
class X extends A {}
class Y extends A {}
Run Code Online (Sandbox Code Playgroud)
我想识别A传递给函数的对象的子类.我可以看到两种选择:
void myfunction(A myobj) {
if(myobj instanceof X)
doXStuff((X) myobj);
if(myobj instanceof Y)
doYStuff((Y) myobj);
}
Run Code Online (Sandbox Code Playgroud)
或添加不同类型的enumto A:
abstract class A {
enum Type { X, Y };
Type type;
...
}
class X extends A {
type = Type.X;
...
}
class Y extends A {
type = Type.Y;
...
}
void myfunction(A myobj) {
if(myobj.type == Type.X)
doXStuff((X) myobj);
if(myobj.type …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我搜索了几个小时的Android设计支持库的完整源代码.我发现从官方Google存储库镜像的源代码:
https://github.com/android/platform_frameworks_support/tree/master/design
但是,我还没有找到android.support.design.widget.NavigationView的源代码.该库的jar文件包含NavigationView.class,但没有附加源.
我该如何找到这门课的来源?代码可能不会向公众发布吗?