2016-01-26 169 views
0

我想子類ParseObject,這似乎工作正常,除非方法無法解析。 Android Studio似乎能夠找到類 - 至少將IDE鏈接返回到原始類PhotoSession,它只是無法找到該方法,並且我得到了無法解析的方法錯誤。子類ParseObject無法解決方法

import com.parse.ParseClassName; 
import com.parse.ParseObject; 


@ParseClassName("PhotoSession") 
public class PhotoSession extends ParseObject { 

    public PhotoSession() { 

    } 

    public void setDisplayName(String value) { 

     put("displayName", value); 

    } 
} 

創建一個其他類的PhotoSession對象:

private void createNewSession() { 

    ParseUser user = ParseUser.getCurrentUser(); 
    ParseObject photoSession = new PhotoSession(); 
    photoSession.setDisplayName("test session"); 

} 

我已經登記在應用程序類的類Parse.initialize之前(...),像這樣:

ParseObject.registerSubclass(PhotoSession.class); 

回答

1

這裏仔細看看:

private void createNewSession() { 
    ParseUser user = ParseUser.getCurrentUser(); 
    ParseObject photoSession = new PhotoSession(); 
    photoSession.setDisplayName("test session"); 
} 

問題是這一行:

ParseObject photoSession = new PhotoSession(); 

您正在創建一個新的PhotoSession對象,但與類型的parseObject。同類型PhotoSession,而不是創建它:

PhotoSession photoSession = new PhotoSession(); 

由於PhotoSession是的parseObject的子類,它是有效的聲明一個新PhotoSession作爲一種類型的parseObject。儘管如此,你並不需要這樣做,因爲它將它轉換爲它的父類,這會刪除PhotoSession對象中存在的任何特定方法。這就是所謂的upcasting,在這種情況下你不想那樣做

+0

啊......是的。當然,這是有道理的。謝謝! – elperro

+0

沒問題,祝你好運! –