Recent Notes

Displaying keyword search results 61 - 70
Created by Dr. Xi on August 13, 2007 20:27:11    Last update: July 13, 2011 16:20:28
Sample code: import java.util.*; public class TestArrayL... If you use iterators, the for loop is equivalent to: for (Iterator<String> i = l.iterator(); i.hasNext(... The simplified for loop (or, for-each loop) can be used for arrays or objects that implement java.lang.Iterable . Note that by using generics, there's not need to down cast. But new for loop syntax doesn't down cast either. If List<String> is changed tp List<Object> , the code doesn't compile.
Created by Dr. Xi on July 13, 2011 16:18:05    Last update: July 13, 2011 16:18:05
The goal is to read a file like this: for (String line: textFileReader) { // do s... This is the code: import java.io.*; import java.util.Iterator; ...
Created by Dr. Xi on July 11, 2011 12:24:10    Last update: July 11, 2011 12:25:44
This code snippet import java.util.*; public class UncheckedCast ... fails with a compilation error and a warning: $ javac -Xlint:unchecked UncheckedCast.java Unc... Because List<String> is not a reifiable type, the Java Runtime does not have enough information to verify the type or do the type casting. This is fixed by changing List<String> to List<?> (or to the raw type List ): public static void main(String[] args) { Ob...
Created by alfa on July 01, 2011 13:16:12    Last update: July 01, 2011 13:16:12
This is a simple doclet that prints all public methods and their parameter names and types. Code import com.sun.javadoc.*; public class List... Compile javac -cp $JAVA_HOME/lib/tools.jar:. ListMethodsDo... Use javadoc -doclet ListMethodsDoclet -sourcepath /pat...
Created by Dr. Xi on June 27, 2011 15:49:00    Last update: June 28, 2011 11:13:35
You should drop the generics notation when looking up a method by signature: import java.util.*; import java.lang.reflect.Me... In fact, Class.forName("java.util.List<java.lang.String>") fails with ClassNotFoundException ! However, all information about parameterized types are not lost at runtime. The Java reflection API does provide these methods to get information about parameterized types at runtime: Method.getGenericExceptionTypes Method.getGenericParameterTypes Method.getGenericReturnType for which the non-generic counterparts are: Method.getExceptionTypes Method.getParameterTypes Method.getReturnType
Created by Dr. Xi on June 27, 2011 13:12:36    Last update: June 27, 2011 13:12:36
Parameterized types are considered different at compile time but not at runtime. This program fails compilation because List<Foo> is not the same as List<Bar> : import java.util.ArrayList; import java.util.Li... Error: $ javac SameErasure.java SameErasure.java:8: do... This also fails because List<Foo> and List<Bar> are considered the same: import java.util.ArrayList; import java.util.Li... Error: $ javac SameErasure.java SameErasure.java:11: n...
Created by Dr. Xi on June 22, 2011 15:15:15    Last update: June 22, 2011 15:15:15
There's no such thing as an immutable byte array in Java. What we are trying to achieve here is to protect the byte array inside the object from which it is being returned. We want to caller to have the contents of the byte array, but not be able to change the contents inside the object. The trick is to return a copy instead of the internal reference: public class ReturnByteArray { public stati...
Created by Dr. Xi on June 22, 2011 07:33:45    Last update: June 22, 2011 11:57:54
Demo code for CSV parsing with OpenCSV . Java code: import java.io.*; import au.com.bytecode.opencs... Test with a simple CSV file: psmith01,CLASS2B,Peter Smith 1,YEAR2,1,N,ADVANCED,... The parser worked correctly: Line 1 has 11 values: |psmith01| |CLASS2B|... Test with a more complicated CSV file: "psmith01 abc", "CLASS2B " , " Peter... Result: Line 1 has 4 values: |psmith01 abc| |CLASS... The parser: Escaped quote and backslash correctly Ignored spaces before the quotation mark - sometimes (see below) Counted spaces after the right quotation mark till the comma as content, including the right quotation mark (bug). Ignored improperly quoted item - silently (third line) Indeed, the OpenCSV parser has a problem with spaces: Input: "Smith, Jack", "210-345-8888" "Smith, J... Result: Line 1 has 2 values: | Smith, Jack| |210-3......
Created by Dr. Xi on June 22, 2011 09:42:35    Last update: June 22, 2011 11:39:40
Demo code for CSV parsing with Skife CSV . Java code: import java.io.*; import java.util.*; import... Test with a simple CSV file: psmith01,CLASS2B,Peter Smith 1,YEAR2,1,N,ADVANCED,... The parser worked correctly: Line 1 has 11 values: |psmith01| |CLASS2B|... Test with a more complicated CSV file: "psmith01 abc", "CLASS2B " , " Peter... Result: Line 1 has 4 values: |psmith01 abc| | CLAS... The parser worked correctly. But notice that it counts the spaces outside of the quotes significant, and doing so consistently. One more test for spaces: "Smith, Jack" , "210-345-8888" "Smith, Jack"... Result: Line 1 has 2 values: | Smith, Jack | | 210... Add a new line in item two: "One", "Two ", "Three" Result: Line 1 has 2 values: |One| | Two| L...
Created by Dr. Xi on June 21, 2011 15:41:51    Last update: June 22, 2011 11:33:36
Demo code for CSV parsing with Apache Commons CSV parser . Java code: import java.io.*; import org.apache.commons.csv... Test with a simple CSV file: psmith01,CLASS2B,Peter Smith 1,YEAR2,1,N,ADVANCED,... Result: Line 1 has 11 values: |psmith01| |CLASS2B|... The parser worked correctly. Test with a more complicated CSV file: "psmith01 abc", "CLASS2B " , " Peter... Result: Line 1 has 4 values: |psmith01 abc| |CLASS... The third line is invalid input, but throwing a Java IOException is a bit grave. Also, the parser is not able to escape a backslash. Add a new line in item two: "One", "Two ", "Three" Result: Line 2 has 3 values: |One| |Two | |...
Previous  2 3 4 5 6 7 8 9 10 11 Next