Я определил метод getValues для нового класса S4 в R. Мой класс и метод:
myClass<-setClass("MyClass",
slots=list(a="numeric",b="list"))
setMethod("getValues", signature ( "MyClass", "missing", "missing"),
getValues<-function(x)
{
print("MyClass-getValues called")
})
В растровом пакете уже есть метод getValues, но с разными подписями (можно увидеть с showMethods("getValues")
). Так что я думал, что способ диспетчеризации выберет правильный метод в зависимости от подписи. Но когда я запустил:
a<-raster()
getValues(a) #problem: this calls "getValues" of the class 'MyClass' and prints "MyClass-getValues called"
Я ожидал, что будет вызван метод getValues для объектов RasterLayer, но это вызовет getValues класса MyClass!
Где ошибка?