Home arrow Java & J2EE arrow Page 5 - Java Comes of Age

Auto-boxing, Auto-Unboxing, and VarArgs - Java

Time to open the Champagne -- Java 1.5 is out, and the language has finally come of age! With the new Java 1.5 specification, Java now contains features that make it feel like a proper "grown-up" language. The rest of this article will introduce you to these new features. To try out the features for yourself, simply download Java 1.5 from Sun’s website and give it a whirl. Note that you’ll need to compile the code using the –source 1.5 option; otherwise, you’ll get compilation errors when using the new features.

TABLE OF CONTENTS:
  1. Java Comes of Age
  2. Type-Safe Enumerations
  3. Static Import and Generics
  4. Enhanced For Loop
  5. Auto-boxing, Auto-Unboxing, and VarArgs
  6. Meta-data
By: Simon White
Rating: starstarstarstarstar / 20
April 07, 2004

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

Auto-boxing/Auto-Unboxing

The idea of auto-boxing and auto-unboxing is to make it easier to convert between primitive data types, like int and boolean, and their equivalent Classes, like Integer and Boolean. It is sometimes frustrating to have to do such a conversion, especially if the purpose of the conversion is just for a method call, after which the results must be converted back to their original form again.

For example, this feature allows you to write the following:


boolean result Boolean.TRUE && Boolean.FALSE;

Previously, this would have generated the following error:


operator && cannot be applied to java.lang.Boolean,java.lang.Boolean
 
        boolean result 
Boolean.TRUE && Boolean.FALSE;

With Java 1.5, however, the Booleans are automatically converted to booleans before the && operator is applied.

The next example shows ints automatically being converted to Integers to store on a Stack, then automatically being converted back again to perform the addition and store the result in the variable stackSum.


import java.util.Stack;
 
Stack<IntegermyStack = new Stack<Integer>();
myStack
.push(1);
myStack
.push(2);
int stackSum 
myStack.pop() + myStack.pop();
System
.out.println(stackSum);

VarArgs

Another new feature is the ability to define methods that accept a variable number of arguments. For example:


private void printCards(Card ... cards) {
    
for (Card card cards) {
        System
.out.println(card.toString());
    
}
}

In a sense, this is syntactic sugar, because the formal parameter to the method is just an array. On the other hand, this is exactly what you would need for a conventional formatted print method, like the printf statement of C. And indeed, Java 1.5 does include such a method! The printCards method above can be rewritten as:


private void printCards(Card ... cards) {
    
for (Card card cards) {
        System
.out.printf("%s of %sn"card.getSuit(), card.getValue());
    
}
}

Here, the printCards method accepts a variable number of arguments and the printf method call also uses a VarArgs method call. The %s in the format control string indicates that a value should be inserted at that point, and the following strings are the strings to be inserted.



 
 
>>> More Java & J2EE Articles          >>> More By Simon White
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

JAVA & J2EE ARTICLES

- More Java Bugs Lead to More Attacks
- Oracle's Java One Brings News, Surprises
- Oracle Patches Java Runtime Environment
- Apple Syncs Java Update with Oracle
- Spring 3.1 Java Development Framework Compat...
- Jelastic Java PaaS Availability and Pricing ...
- NetBeans 7.1 Released, Supports JavaFX 2
- SolarWinds Releases Newest Version of Java M...
- Free Monitoring Tool for Java Apps on Heroku
- Heroku Adds JCloud Platform Support, Java 7 ...
- Java SE 8 Speculation in Full Swing
- Java SE 7 Now Available
- New JVM Language and Java Reporting Tool
- Java 7 Release Update and New Eclipse Toolkit
- The Best Java Netbeans IDE Plugins

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: