Quais são const de classe e do método do tipo const opcodes para? O código java gera-los?

votos
0

Estou criando uma ferramenta para o pós-processamento de aplicações Dalvik. Para os testes eu quero criar código que irá conter todos os opcode. Estou tendo problemas em entender o que de classe const e-método do tipo const opcodes fazer. As definições na documentação oficial do Dalvik não são esclarecer a questão para mim.

const de classe

Mover uma referência para a classe especificada pelo índice fornecido no registo especificado. No caso em que o tipo indicado é primitivo, isto irá armazenar uma referência a classe degenerada do tipo primitivo.

O que é referência para a classe? Isto não é referência a um objeto, tanto quanto eu sei.

Mesmo com

-Método do tipo const

Mover uma referência para o protótipo método indicado pelo índice fornecido no registo especificado.

Tanto quanto eu entendo que isso não é a função de ponteiro. ponteiro função é tratado por

const método pega

Mover uma referência para a pega método indicado pelo índice fornecido no registo especificado.

Minha pergunta é:

O que são const de classe e do método do tipo const utilizado? Que tipo de código java iria gerar esses opcodes em Dalvik?

Talvez vale a pena mencionar que a minha experiência java é bastante baixo - eu sou c tipo ++ de cara.

Publicado 18/12/2018 em 11:02
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

const-classpode ser gerado quando você se referir a uma propriedade da classe de um objeto. por exemplo Class cls = MyObject.class.

Tanto quanto eu sei, o método lida e tipos não são gerados pelo código java. Você pode referenciá-los usando a reflexão, mas eu não acho que isso vai realmente gerar o const-method-typeou const-method-handleinstruções

Eles são coadjuvantes para invoke-custom, que se destina principalmente para uso por outras línguas que são compilado para bytecode java e bytecode, eventualmente Dalvik.

Respondeu 18/12/2018 em 12:48
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more