2016-01-26 124 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

没问题,祝你好运! –