相关疑难解决方法(0)

Android应用无法启动活动组件信息

我是一名新的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)

android runtime-error android-activity

48
推荐指数
2
解决办法
24万
查看次数

不明白Arrays.copyOf的源代码

我无法理解源代码Arrays.copyOf.

public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
    T[] copy = ((Object)newType == (Object)Object[].class)
        ? (T[]) new Object[newLength]
        : (T[]) Array.newInstance(newType.getComponentType(), newLength);
    System.arraycopy(original, 0, copy, 0,
                     Math.min(original.length, newLength));
    return copy;
}
Run Code Online (Sandbox Code Playgroud)
  1. 这行检查是什么?

    (Object)newType == (Object)Object[].class
    
    Run Code Online (Sandbox Code Playgroud)
  2. (T[]) new Object[newLength]和之间有什么区别(T[]) Array.newInstance(newType.getComponentType(), newLength)?为什么Array.newInstance两种情况都不够好?

  3. 以下行编译,但在运行时崩溃(如预期的那样).我什么时候应该使用这种方法?

    Integer[] nums = Arrays.copyOf(new String[]{"a", "b"}, 2, Integer[].class) 
    
    Run Code Online (Sandbox Code Playgroud)

java arrays generics

43
推荐指数
4
解决办法
3959
查看次数

Java:自动装箱和铸造有什么区别?

这个问题是关于"为什么autoboxing在Java中使一些调用变得模棱两可?"

但通过阅读答案,有许多参考铸造,我不确定我完全理解差异.

有人可以提供简单的解释吗?

java autoboxing casting

22
推荐指数
3
解决办法
3万
查看次数

错误:不兼容的类型:从int到short的可能有损转换.我不知道为什么我收到此错误消息

public class Demo 
{
    public static void main(String[] args) 
    {
       int a=10,b=20;
       short c = (a<b)?a:b;
       System.out.println(c);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的程序,我得到以下错误,为什么我没有得到

"Demo.java:6: error: incompatible types: possible lossy conversion from int to short
short c = (a<b)?a:b;
1 error" 
Run Code Online (Sandbox Code Playgroud)

我用变量声明写"final",它工作正常.但为什么会这样呢?

public class Demo 
{
    public static void main(String[] args) 
    {
        final int a=10,b=20;
        short c = (a<b)?a:b;
        System.out.println(c);
    }
}
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
343
查看次数

java.lang.Long无法强制转换为java.math.BigInteger

我的程序有一个方法,可以获取特定行的计数并将其转换为BigInteger:

private BigInteger getSameSatPremise(ServiceAgreement sa) {
BigInteger count = BigInteger.ZERO;

    StringBuffer queryHql = new StringBuffer();
    queryHql.append("from Table t1");
    Query query = createQuery(queryHql.toString());
    query.addResult("count", "count(distinct t1.column1)");
    if (query.listSize() > 0) {
        count = (BigInteger) query.firstRow();
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

当查询结果为0时,转换工作正常.但是当查询结果为2时,我得到如下所示的转换错误.

Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.math.BigInteger
Run Code Online (Sandbox Code Playgroud)

谁能帮忙.

java hql

2
推荐指数
1
解决办法
3338
查看次数