获取空值 [英] Getting null value

查看:195
本文介绍了获取空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用com.android.internal.telephony的API。在我叫了两个抽象类他们Call.java和Connection.java。你可以在这里找到这些类的http:// HI-机器人.INFO / src目录/ COM /安卓/内部/电话/ Call.java.html 并的 http://hi-android.info/src/com/android/internal/telephony/Connection.java.html

 通话MYCALL =新的MyCall();
连接的myconn =新MyConnection的();

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

 的myconn = myCall.getEarliestConnection();
      如果(的myconn == NULL){
         的System.out.println(myconn是空******);
        }其他
           {
            Connection.DisconnectCause原因= myConn.getDisconnectCause();
                的System.out.println(+事业事业******值);
           }

Call.java的子类是:

  1。 CallManager的厘米= CallManager.getInstance();
2. Phone.State状态;
3。
4.公开名单<连接GT&; getConnections(){
5.状态= cm.getState();
6. ringingCall = cm.getForegroundCalls();
7.的System.out.println(**内getConnections =+状态);
8.的System.out.println(**内getConnections =+ ringingCall);
9.如果(ringingCall == NULL){
10的System.out.println(**电话是空***);
11.返回emptyConnections;
12.}
13.其他
14. {
15的System.out.println(**电话不是空***);
16.回报((呼叫)ringingCall).getConnections();
17.}
18. @覆盖
19.公用电话getPhone(){
20.返回NULL;
                    }
                   @覆盖
                   公共无效挂起()抛出Call​​StateException {                            }                   @覆盖
                   公共布尔isMultiparty(){
                    返回false;
                   }
                   公共连接
                       getEarliestConnection(){
                            表L;
                                很长一段时间= Long.MAX_VALUE;
                                连接C;
                                连接最早= NULL;     68. L = getConnections();                                如果(L == NULL){
                                    返回null;
                                }否则如果(l.size()== 0)
                                {
                                    返回null;
                                }                                对于(INT I = 0,S = l.size(); I< S;我++){
                                    C =(连接)l.get(I)
                                    长吨;                                    T = c.getCreateTime();                                    如果(T<时间){
                                        最早= C;
                                        时间= T;
                                    }
                                }                                返回最早的;
                            }                        }而Connection.java子类:
    类MyConnection的扩展连接{            @覆盖
            公共无效cancelPostDial(){
                // TODO自动生成方法存根            }            @覆盖
            公共字符串的getAddress(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            公共电话的getcall(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            众长getConnectTime(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            众长getCreateTime(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            公共DisconnectCause getDisconnectCause(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            众长getDisconnectTime(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            众长getDurationMillis(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            众长getHoldDurationMillis(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            公众诠释getNumber presentation(){
                // TODO自动生成方法存根
                返回0;
            }            @覆盖
            公共PostDialState getPostDialState(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            公共字符串getRemainingPostDialString(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            公共UUSInfo getUUSInfo(){
                // TODO自动生成方法存根
                返回null;
            }            @覆盖
            公共无效挂起()抛出Call​​StateException {
                // TODO自动生成方法存根            }            @覆盖
            公共布尔isIncoming(){
                // TODO自动生成方法存根
                返回false;
            }            @覆盖
            公共无效proceedAfterWaitChar(){
                // TODO自动生成方法存根            }            @覆盖
            公共无效proceedAfterWildChar(字符串为arg0){
                // TODO自动生成方法存根            }            @覆盖
            公共无效分离()抛出Call​​StateException {
                // TODO自动生成方法存根            }
        }

编辑2:我已经编辑1号线到17 PLZ检查。线路上无java.util.Collections中的错误:16号线:我收到java.lang.ClassCastException。68 任何人可以帮助我解决这个问题。而且我正在通话的状态只有一个即总是空的,即使调用不是空的。我越来越else部分内。 plz帮助我。


解决方案

  @覆盖
 公开名单<连接GT&; getConnections(){
    返回null;
 }

的MyCall 类此方法返回null并在code为 MyCall.getEarliestConnection(); 它返回null如果 getConnections()收益

I am using com.android.internal.telephony API's. In that I called two abstract classes they are Call.java and Connection.java. You can find these classes here http://hi-android.info/src/com/android/internal/telephony/Call.java.html and http://hi-android.info/src/com/android/internal/telephony/Connection.java.html for these created subclasses like

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

I need to use getDisconnectCause method from connection class which is an abstract method, I used like this:

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);  
           }

The subclass of Call.java is:

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

            } 


        }  

EDIT 2 : I have edited line number 1 to 17. Plz check this. I am getting java.lang.ClassCastException: java.util.Collections error on Line No: 16 and Line No:68. Can anybody help me to resolve this. And also I am getting only one state of call i.e IDLE always even though the call is not-null . I am getting inside else part. plz help me.

解决方案

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

This method on your MyCall class returns null and in your code for MyCall.getEarliestConnection(); it returns null if getConnections() returns null.

这篇关于获取空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆