2015-09-03 3 views
0

У меня есть метод, который регистрирует классы для сериализации. Я хочу назвать это из класса управления, что-то вроде:Как вы передаете ссылку на тип 'class'?

public static void main(String[] args) { 
     Registrar.RegisterClass(Control.SomeRequest); 
     Registrar.RegisterClass(Control.SomeResponse); 

     Sender testServer = new Sender(); 
     Receiver testClient = new Receiver(); 

     testServer.StartServer(); 
     testClient.StartClient(); 
    } 

    public static class SomeRequest { 
     public String text; 
    } 
    public static class SomeResponse { 
     public String text; 
    } 
--------------------------------------------- 
public class Registrar { 
    static Kryo kryo = client.getKryo(); 

    public static void RegisterClass(??? cls){ 
     kryo.register(cls.class); 
    } 
} 

В качестве альтернативы, я мог бы пройти в Control.SomeRequest.class так же легко, хотя я не уверен, как добиться либо из них.

+2

'cls' должны, вероятно, быть' Object', и вы, вероятно, следует называть 'GetClass()' на нем. – TheLostMind

+0

Не совсем уверен, что вы имеете в виду. Вы хотите передать 'Control.SomeRequest.class' в качестве аргумента для' RegisterClass'? –

+0

Просто используйте тип 'Class'. – Sebas

ответ

3

Имя класса "классов" является Class

public static void RegisterClass(Class cls){ 
     kryo.register(cls); 
} 
Смежные вопросы