This week's book giveaway is in the Cloud/Virtualizaton forum.
We're giving away four copies of Mesos in Action and have Roger Ignazio on-line!
See this thread for details.
Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Do we have anything in Java like we have typedef in C++

 
Harish V Gupta
Ranch Hand
Posts: 37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I was wondering if we have any way to declare a variable with our own name. For example,


Please don't say to extend the class and then declare because that won't be same (for example, private variables will be missing).
 
Henry Wong
author
Marshal
Pie
Posts: 21119
78
C++ Chrome Eclipse IDE Firefox Browser Java jQuery Linux VI Editor Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Harish V Gupta wrote:I was wondering if we have any way to declare a variable with our own name. For example,


Please don't say to extend the class and then declare because that won't be same (for example, private variables will be missing).


No. I don't think that there is an equivelant of typedef in Java.

Sorry,
Henry
 
Campbell Ritchie
Sheriff
Pie
Posts: 48957
60
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If I remember correctly, typedef actually comes from C. You don’t need it in a language where you can create classes.
 
Joanne Neal
Rancher
Posts: 3742
16
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Is this just a general enquiry or do you think you have a use for such a thing ?
If the latter it might be better to explain what you are trying to do and then maybe someone will be able to suggest a solution.
 
Harish V Gupta
Ranch Hand
Posts: 37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I do need to use it. I am actually reading a file which can be of either xls or xlsx format. We have one API each for rendering xls and xlsx file. For xls it's HSSFWorkbook and for xlsx it's XSSFWorkbook. Both these classes have methods with same names in it. So if I can have a synonym type, I can use it to declare either HSSFWorkbook or XSSFWorkbook variable as the case may be.
 
Matthew Brown
Bartender
Posts: 4567
8
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The way you would usually do that in Java would be to have an interface that defines the operations, and two classes that implement the interface. You then declare the variable using the interface type.
 
Jayesh A Lalwani
Rancher
Posts: 2756
32
Eclipse IDE Spring Tomcat Server
  • Likes 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In this case, both HSSFWorkbook and XSSFWorkbook implement the Workbook interface. You should really be coding to the Workbook interface instead of the implementation classes.
 
Ivan Jozsef Balazs
Rancher
Posts: 979
5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Harish V Gupta wrote:
Please don't say to extend the class


The class String is final anyway.
 
Winston Gutkowski
Bartender
Pie
Posts: 10417
63
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Harish V Gupta wrote:I do need to use it. I am actually reading a file which can be of either xls or xlsx format. We have one API each for rendering xls and xlsx file. For xls it's HSSFWorkbook and for xlsx it's XSSFWorkbook. Both these classes have methods with same names in it. So if I can have a synonym type, I can use it to declare either HSSFWorkbook or XSSFWorkbook variable as the case may be.

Seems to me like a basic class hierarchy rather than a typedef, even in C++; but it has been quite a while. In Java, if it was me, I'd probably base it around a WorkBook interface, as already mentioned.

Another possibility, of course, is an enum.

Winston
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic