This week's book giveaway is in the Design forum.
We're giving away four copies of Design for the Mind and have Victor S. Yocco on-line!
See this thread for details.
Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Set value of char and String ?

 
Chen SanHau
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

compile error:
empty character literal
unclosed character literal

compile OK!!
Why not:
empty String literal
unclosed String literal

Why String and char have such a different result ??
 
Dirk Schreckmann
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Remember that char is a primitive integral data type in Java. What would an empty integer be? In Java, there's simply no such thing.
String is a class. That class has been defined to allow for empty String values, where a String object might exist that contains no characters.
 
Chen SanHau
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
empty character literal
unclosed character literal
"unclosed" mean what ?
Does it equal null ??
char myC1 = '';
Why don't it print "Illegal initialization"?
 
Layne Lund
Ranch Hand
Posts: 3061
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"unclosed" usually means that you have an opening delimiter in your code, but not closing one to match it. If you have only one single-quote (') without a matching single-quote after the next character, you can get this error. Similarly, if you only have one double-quote ("), you will get a similar error for an unclosed String constant.
HTH
Layne
 
Dirk Schreckmann
Sheriff
Posts: 7023
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
char myC1 = '';
Why don't it print "Illegal initialization"?

The guy who wrote the compiler decided to design things such that when you tried to specify an illegal, non-existant literal char value with '', that the compiler should complain about that. So, it does.
 
Chen SanHau
Greenhorn
Posts: 27
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks.
I try to express concepts learning from all you good guys to see if it's wrong or not.
If Java tries to compile codes
char myC1 = '';
Java will store ' in heap as value of myC1, but doesn't find
closing delimiter.
So JVM will show
empty character literal
unclosed character literal
?
Is it right?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic