Typedef c++ em java

Pessoal,

alguém sabe se existe um comando equivalente ao typedef do c++ em java?

Enfim, estou precisando definir nomes e tipos próprios em java.

Não quero ter que criar uma classe para cada tipo, acho que vai aumentar muito o código.

então, só pra exemplificar, como eu faria o equivalente em java para estes trechos:

typedef struct tagSystemBoardInfo{
      ULONG                    totalBoardCount;
      ULONG                    totalphysicalDsp;
      GV_BOARD_INFO     board[GV_MAX_BOARD_COUNT];
}SYSTEM_BOARD_INFO, *PSYSTEM_BOARD_INFO;
typedef enum{
      VIDEOAUTOREDUCE_MOTION = 1,
      VIDEOAUTOREDUCE_BRIGHTNESS
}VideoAutoReduceType_t;

Valeu.

Até onde seu sei, infelizmente não há no Java nada equivalente ao typedef do C/C++. Talvez a biblioteca (paga) abaixo possa lhe ajudar nisso:

http://www.excelsior-usa.com/xfunction.html

Crie uma classe para cada typedef struct e um enum para cada typedef enum. Você não tem como escapar disso.

Se as classes vão ser usadas somente dentro de um determinado pacote, não há necessidade de torná-las públicas, e você pode então deixá-las todas dentro do mesmo arquivo .java. Você só precisa separar as classes se a classe for declarada public; nesse caso, você tem de criar um arquivo .java para cada classe public.

Inicialmente eu pensei nisso mesmo thingol…

Até dei uma olhada em um topico da ibm falando disso(http://www.ibm.com/developerworks/library/j-jtp02216.html), mas parece que é meio bugado.

O que preciso fazer é acessar uma dll via jna. Tenho um arquivo .h de exemplo, e estes typedef estao todos neste .h, junto com as definições dos métodos da dll.

Acho que vou acabar fazendo uma classe public pra cada struct, e uma classe com todos os enums. Assim acho que fica mais fácil pra manutenção.

Se alguém tiver mais alguma idéia, será bem vinda.

Bem, o lance do JNA envolve justamente isso: Mapear typedefs em classes.

Uma dica: Alinhamento de bytes e certas estruturas complicam um pouco a vida. Faça o seguinte: Crie um programa bobo que faça estes includes e imprima o tamanho destes typedefs através de sizeof.

void main(void) {
printf(“Estrutura #1:\n”, sizeof(xxx));
}

Isso é um começo - O fato de uma estrutura possuir, digamos, um campo char (em C, 8 bits) e outro int (32-bits) não implica que ele possua 5 bytes. Na verdade, o compilador tende a alinhar para otimizar o acesso (endereços múltiplos de 4 são mais rápidos) farão com que ele possua oito bytes.

É apenas uma idéia, é claro.