Điều tôi đang cố làm là tạo một hàm có thể sử dụng một lớp chung và sử dụng một phương thức tĩnh trong nó (xin lỗi ngôn ngữ Java).).Nhận đối tượng đồng hành của lớp theo kiểu chung chung Scala
trait Worker {def doSth: Unit}
class Base
object Base extends Worker
// this actually wouldn't work, just to show what I'm trying to achieve
def callSthStatic[T that companion object is <: Worker](implicit m: Manifest[T]) {
// here I want to call T.doSth (on T object)
m.getMagicallyCompanionObject.doSth
}
Bất kỳ ý tưởng nào?
Tôi đã thêm nội dung Gist thực tế - Gist có thể biến mất và liên kết đó đủ điều kiện làm nhận xét. –
Tôi nhận được "lỗi: loại phương pháp phụ thuộc bất hợp pháp đồng hành không xác định" [T] (comp ngầm: Companion [T]) = comp.apply() "tại dòng" ngầm định đồng hành [T] (ẩn comp: Companion [ T]) = comp() "với scala 2.9.1. Tôi có làm sai không? :-) –
Tôi sẽ thêm parenthetically rằng nếu loại 'Foo' là có thể nhìn thấy sau đó vì vậy nó là đối tượng đồng hành, vì vậy mặc dù điều này có vẻ khá tiện lợi Tôi không nghĩ rằng nó hữu ích trong thực tế. –