我是一名新的Android程序员,最近,我的很多项目都收到了这个错误:
07-31 23:45:19.592: ERROR/AndroidRuntime(716): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.amrit.musifind/com.amrit.musifind.Main}:
java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
这是整个logcat堆栈跟踪:
07-31 23:45:18.512: INFO/ActivityManager(63): Starting activity: Intent {
act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000
cmp=com.amrit.musifind/.Main }
07-31 23:45:18.682: INFO/ActivityManager(63): Start proc com.amrit.musifind for activity
com.amrit.musifind/.Main: pid=716 uid=10025 gids={3003}
07-31 23:45:18.962: INFO/jdwp(716): received file descriptor 20 from ADB
07-31 23:45:19.102: DEBUG/ddm-heap(716): Got feature list request
07-31 23:45:19.572: DEBUG/AndroidRuntime(716): Shutting down VM
07-31 23:45:19.572: WARN/dalvikvm(716): threadid=3: thread exiting with uncaught
exception (group=0x4001aa28)
07-31 23:45:19.572: ERROR/AndroidRuntime(716): Uncaught handler: thread main exiting due
to uncaught …
Run Code Online (Sandbox Code Playgroud) 我说的是java语言.
变量"this"在类中使用时,引用该类的当前实例,这意味着您不能在静态方法中使用"this".
但是"super",当在类中使用时,指的是该类的超类,而不是超类的实例,这应该意味着你可以在静态方法中使用"super".但事实证明你做不到.
一个可能的解释是说"超级"也指超类的一个实例,但我不明白为什么它应该......
我的问题是,当我们实例化一个子类时,我们是否可以访问和使用间接/隐式创建的超类对象.
让我们说ClassA
是超类,SubClassofA
我们SubClassofA
在客户端类中实例化ClientClass
使用SubClassofA object = new SubClassofA();
由于整个继承层次结构在我们创建子类对象时被实例化,我想知道,是否可以ClassA
在客户端类中访问类的对象?
如果不可能,可能是什么原因?如果我们可以访问超类对象而不重新创建它们,它会不会节省大量的堆内存?
我可能误解了构造函数链接和继承层次结构的整个概念,但请让我知道你对此的看法.
public class ClassA {}
public class SubClassofA extends ClassA {}
public class ClientClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
SubClassofA object = new SubClassofA();
//Above construct means that an instance of super class ClassA exists too
// If we can use those super class instances directly, will it result in memeory saving?
//is it …
Run Code Online (Sandbox Code Playgroud) 我正在浏览Android恶意软件中的一段代码以了解它的工作原理.av类定义如下
public final class av implements android.widget.AdapterView.OnItemClickListener {
final ChooserActivity a;
public av(ChooserActivity chooseractivity) {
super();
a = chooseractivity;
}
...Other methods here
}
Run Code Online (Sandbox Code Playgroud)
super()调用直接的父类构造函数 - >我知道
父类是Object.所以构造函数将返回什么.意味着返回对象的属性是什么.
以下是头部设计模式书中的代码片段:
public class LowerCaseInputStream extends FilterInputStream {
public LowerCaseInputStream(InputStream in) {
super(in);
}
public int read() throws IOException {
int c = super.read();
return (c == -1 ? c : Character.toLowerCase((char)c));
}
public int read(byte[] b, int offset, int len) throws IOException {
int result = super.read(b, offset, len);
for (int i = offset; i < offset+result; i++) {
b[i] = (byte)Character.toLowerCase((char)b[i]);
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
同一章还有另一个玩具示例:
public class Mocha extends CondimentDecorator {
Beverage beverage;
public Mocha(Beverage beverage) { …
Run Code Online (Sandbox Code Playgroud) 我正在学习我的java认证,我遇到了这段代码.
class Feline {
public String type = "f ";
public Feline() {
System.out.print("feline ");
}
}
public class Cougar extends Feline {
public Cougar() {
System.out.print("cougar ");
}
public static void main(String[] args) {
new Cougar().go();
}
void go() {
type = "c ";
System.out.print(this.type + super.type);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行它,我得到"猫科动物美洲狮cc"所以我得到它为什么它返回猫和美洲狮后,但为什么super.type指的是美洲狮对象而不是猫科动物对象?
我看到这篇文章,但它并没有真正启发我.