java - 获取空值

标签 java android

我正在使用 com.android.internal.telephony API。在其中我调用了两个抽象类,它们是 Call.java 和 Connection.java。您可以在这里找到这些类(class) http://hi-android.info/src/com/android/internal/telephony/Call.java.htmlhttp://hi-android.info/src/com/android/internal/telephony/Connection.java.html对于这些创建的子类,例如

Call myCall = new MyCall();
Connection myConn = new MyConnection();

我需要使用连接类中的 getDisconnectCause 方法,这是一个抽象方法,我这样使用:

myConn = myCall.getEarliestConnection();                            
      if(myConn == null){
         System.out.println("myConn is null ******");   
        }else
           {
            Connection.DisconnectCause cause = myConn.getDisconnectCause();                      
                System.out.println("value of cause ******"+cause);  
           }

Call.java的子类是:

1.     CallManager cm = CallManager.getInstance();  
2.        Phone.State state;
3.    
4.        public List<Connection> getConnections() {    
5.         state = cm.getState();       
6.         ringingCall = cm.getForegroundCalls();    
7.         System.out.println("**inside getConnections="+state);    
8.         System.out.println("**inside getConnections="+ringingCall);  
9.           if ( ringingCall == null) {
10.               System.out.println("**call is null***");
11.               return emptyConnections;
12.            }
13.            else
14.            {
15.             System.out.println("**call is not null***");
16.                    return ((Call) ringingCall).getConnections();    
17.            }
18.                    @Override
19.                    public Phone getPhone() {
20.                     return null;
                    }
                   @Override
                   public void hangup() throws CallStateException {

                            }

                   @Override
                   public boolean isMultiparty() {
                    return false;
                   }        
                   public Connection
                       getEarliestConnection() {
                            List l;
                                long time = Long.MAX_VALUE;
                                Connection c;
                                Connection earliest = null;

     68.                        l = getConnections();

                                if (l == null) {
                                    return null;
                                }else if ( l.size() == 0)
                                {
                                    return null;
                                }

                                for (int i = 0, s = l.size() ; i < s ; i++) {
                                    c = (Connection) l.get(i);
                                    long t;

                                    t = c.getCreateTime();

                                    if (t < time) {
                                        earliest = c;
                                        time = t;
                                    }
                                }

                                return earliest;
                            }

                        }

AND the Connection.java subclass is:


    class MyConnection extends Connection{

            @Override
            public void cancelPostDial() {
                // TODO Auto-generated method stub

            }

            @Override
            public String getAddress() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Call getCall() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public long getConnectTime() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public long getCreateTime() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public DisconnectCause getDisconnectCause() {
                // TODO Auto-generated method stub


                return null;
            }

            @Override
            public long getDisconnectTime() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public long getDurationMillis() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public long getHoldDurationMillis() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public int getNumberPresentation() {
                // TODO Auto-generated method stub
                return 0;
            }

            @Override
            public PostDialState getPostDialState() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public String getRemainingPostDialString() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public UUSInfo getUUSInfo() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void hangup() throws CallStateException {
                // TODO Auto-generated method stub

            }

            @Override
            public boolean isIncoming() {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void proceedAfterWaitChar() {
                // TODO Auto-generated method stub

            }

            @Override
            public void proceedAfterWildChar(String arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void separate() throws CallStateException {
                // TODO Auto-generated method stub

            } 


        }  

编辑 2:我已经编辑了第 1 至 17 行。请检查一下。我在第 16 行和第 68 行收到 java.lang.ClassCastException: java.util.Collections 错误。 任何人都可以帮助我解决此问题。而且我只得到一种调用状态,即始终处于 IDLE 状态,即使调用不是 null 。我正在进入其他部分。请帮助我。

最佳答案

 @Override
 public List<Connection> getConnections() {
    return null;
 }

MyCall 类上的此方法返回 null,在 MyCall.getEarliestConnection(); 的代码中,如果 getConnections() 则返回 null返回null

关于java - 获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8745765/

相关文章:

java - Http 连接读取超时

java - EasyMock 记录阶段模拟作为参数

android - 如何从android中的微调器列表中隐藏所选项目

android - NetBeans 8.0 PhoneGap 运行错误

java - 如何从 ArrayList 中获取相等或接近相等数量的具有不同字段值的对象

java - netbeans环境变量

java - 在自定义 Eclipse View 中绘制

android - 指定的 child 已经有一个 parent 。当我做 layout.addView(button, params);

android - 哪些 Android 版本支持 Snackbars?

android - 如何更改 Material slider 字体