Conversions in Java

P

Panoramix

Someone has a good introduction to conversions of values in Java?

I am working in a project that I need to use this and I'm having some trouble about this.


Thanks!
 
A

Arne Vajhøj

Someone has a good introduction to conversions of values in Java?

I am working in a project that I need to use this and I'm having some trouble about this.

What type of conversions?

Arne
 
S

Stefan Ram

Panoramix said:
Someone has a good introduction to conversions of values in Java?

There are no special books about the conversions of values
in Java, but the topic is treated in every good Java text book.
I am working in a project that I need to use this and I'm having some trouble about this.

Possibly, you might want

java.lang.Double.valueOf( yourText )
 
A

Arved Sandstrom

There are no special books about the conversions of values
in Java, but the topic is treated in every good Java text book.

And the language spec and type APIs.
Possibly, you might want

java.lang.Double.valueOf( yourText )
Good point, both Arne and Stefan - it may not be simply implicit numeric
type conversions referred to here, but also parsing string into numeric,
etc etc.

AHS
 
L

Lew

Arne asked "What type of conversions?" Here is some general information about various
conversion types:

http://docs.oracle.com/javase/tutorial/java/data/converting.html
http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html
http://docs.oracle.com/javase/tutorial/essential/io/scanfor.html
http://docs.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html

If you read the Java Language Specification (JLS) you will get the normative definitions
for various conversions:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

If you mean various formatting or string conversions, as Stefan conjectured, then you
should look at the Javadocs for various formatting and string-ish types:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.lang.String, java.lang.Object...)
et al.
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
http://docs.oracle.com/javase/7/docs/api/java/text/Format.html
and related types
There are no special books about the conversions of values
in Java, but the topic is treated in every good Java text book.


Possibly, you might want

java.lang.Double.valueOf( yourText )

There are similar 'valueOf()' methods in the other primitive wrapper classes ('Integer', ...).

Also, GIYF.
 
P

Panoramix

Thanks guys!

I really appreciate.

When I say conversions, I mean every type of conversion!

Thanks for the help
 
R

Robert Klemme

When I say conversions, I mean every type of conversion!

Well, then you just need

public interface Converter<F,T> {
T convert(F fromValue);
}

implement all conversions needed plus a smart mechanism to choose the
appropriate one in every case. ;-)

Cheers

robert
 
A

Arved Sandstrom

Well, then you just need

public interface Converter<F,T> {
T convert(F fromValue);
}

implement all conversions needed plus a smart mechanism to choose the
appropriate one in every case. ;-)

Cheers

robert
JSF javax.faces.convert.Converter. :) You've got to do the custom work
and the mechanism is explicit, but still...

A fair few ESBs (enterprise service buses) also have what they call
transformers (converters) and often a registration/auto-discovery
mechanism. For example, in Java-based ESBs - which is most of them - you
might have a message which encounters a processing component, which by
entry point resolution, expects a payload of class X and to return a
payload of class Y (null is acceptable): the ESB will consult a list of
X<->Y converters that it knows about, and select the best converter
according to a rule set.

AHS
 
A

Arne Vajhøj

When I say conversions, I mean every type of conversion!

Numbers of possible types are infinite.

So number of conversions between types are also infinite.

But if you are only thinking about the most basic types
then see below for some examples.

Arne

====

int iv = 123;
double xv2;
xv2 = iv;

int iv = 123;
boolean bv2;
bv2 = (iv != 0);

int iv = 123;
char cv2;
cv2 = (char)iv;

int iv = 123;
String sv2;
sv2 = Integer.toString(iv);

double xv = 123.456;
int iv2;
iv2 = (int)xv;

double xv = 123.456;
String sv2;
sv2 = Double.toString(xv);

boolean bv = true;
int iv2;
iv2 = (bv ? 1 : 0);

boolean bv = true;
String sv2;
sv2 = (new Boolean(bv)).toString();

char cv = 'A';
int iv2;
iv2 = cv;

char cv = 'A';
String sv2;
sv2 = new String(new char[] { cv });

String sv = "123";
int iv2;
iv2 = Integer.parseInt(sv);

String sv = "123.456";
double xv2;
xv2 = Double.parseDouble(sv);

String sv = "true";
boolean bv2;
bv2 = Boolean.valueOf(sv).booleanValue();

String sv = "ABC";
char cv2;
cv2 = sv.charAt(0);

int iv = 123;
String sv2;
sv2 = Integer.toHexString(iv);

String sv = "7b";
int iv2;
iv2 = Integer.parseInt(sv, 16);

byte[] b = { 65, 66, 67 };
String s2;
s2 = new String(b, "ISO-8859-1");

String s = "abc";
byte[] b2;
b2 = s.getBytes("ISO-8859-1");

int iv = 123;
Integer iv2;
iv2 = new Integer(iv);

Integer iv = new Integer(123);
int iv2;
iv2 = iv.intValue();

java.util.Date d;
java.util.Calendar cal = new java.util.GregorianCalendar();
d = cal.getTime();

java.util.Date d = new java.util.Date();
java.util.Calendar cal = new java.util.GregorianCalendar();
cal.setTime(d);

java.util.Date d = new java.util.Date();
java.text.DateFormat df = new
java.text.SimpleDateFormat("dd-MMM-yyyy hh:mm");
String ds;
ds = df.format(d);

String ds = "31-Jan-2004 09:24"
java.util.Date d;
java.text.DateFormat df = new
java.text.SimpleDateFormat("dd-MMM-yyyy hh:mm");
d = df.parse(ds);

java.util.Date d = new java.util.Date();
java.sql.Timestamp ts;
ts = new java.sql.Timestamp(d.getTime());

java.sql.Timestamp ts = new java.sql.Timestamp((new Date()).getTime());
java.util.Date d;
d = ts;
 
K

Kevin McMurtrie

Don't forget shorthand operators that automatically typecast:

+=
-=
*=
/=

int a= 0;
a+= Double.MAX_VALUE;
a+= Float.MAX_VALUE;
a+= Long.MAX_VALUE;

The shorthand bit operators automatically typecast length:

|=
&=
^=

a|= Long.MAX_VALUE;



Arne Vajhøj said:
When I say conversions, I mean every type of conversion!

Numbers of possible types are infinite.

So number of conversions between types are also infinite.

But if you are only thinking about the most basic types
then see below for some examples.

Arne

====

int iv = 123;
double xv2;
xv2 = iv;

int iv = 123;
boolean bv2;
bv2 = (iv != 0);

int iv = 123;
char cv2;
cv2 = (char)iv;

int iv = 123;
String sv2;
sv2 = Integer.toString(iv);

double xv = 123.456;
int iv2;
iv2 = (int)xv;

double xv = 123.456;
String sv2;
sv2 = Double.toString(xv);

boolean bv = true;
int iv2;
iv2 = (bv ? 1 : 0);

boolean bv = true;
String sv2;
sv2 = (new Boolean(bv)).toString();

char cv = 'A';
int iv2;
iv2 = cv;

char cv = 'A';
String sv2;
sv2 = new String(new char[] { cv });

String sv = "123";
int iv2;
iv2 = Integer.parseInt(sv);

String sv = "123.456";
double xv2;
xv2 = Double.parseDouble(sv);

String sv = "true";
boolean bv2;
bv2 = Boolean.valueOf(sv).booleanValue();

String sv = "ABC";
char cv2;
cv2 = sv.charAt(0);

int iv = 123;
String sv2;
sv2 = Integer.toHexString(iv);

String sv = "7b";
int iv2;
iv2 = Integer.parseInt(sv, 16);

byte[] b = { 65, 66, 67 };
String s2;
s2 = new String(b, "ISO-8859-1");

String s = "abc";
byte[] b2;
b2 = s.getBytes("ISO-8859-1");

int iv = 123;
Integer iv2;
iv2 = new Integer(iv);

Integer iv = new Integer(123);
int iv2;
iv2 = iv.intValue();

java.util.Date d;
java.util.Calendar cal = new java.util.GregorianCalendar();
d = cal.getTime();

java.util.Date d = new java.util.Date();
java.util.Calendar cal = new java.util.GregorianCalendar();
cal.setTime(d);

java.util.Date d = new java.util.Date();
java.text.DateFormat df = new
java.text.SimpleDateFormat("dd-MMM-yyyy hh:mm");
String ds;
ds = df.format(d);

String ds = "31-Jan-2004 09:24"
java.util.Date d;
java.text.DateFormat df = new
java.text.SimpleDateFormat("dd-MMM-yyyy hh:mm");
d = df.parse(ds);

java.util.Date d = new java.util.Date();
java.sql.Timestamp ts;
ts = new java.sql.Timestamp(d.getTime());

java.sql.Timestamp ts = new java.sql.Timestamp((new Date()).getTime());
java.util.Date d;
d = ts;
 
S

Sven Köhler

Numbers of possible types are infinite.

So number of conversions between types are also infinite.

But the formal description of all possible conversions between types is
not infinite.


Regards,
Sven
 
A

Arne Vajhøj

But the formal description of all possible conversions between types is
not infinite.

True.

But if someone want to ask that question and can understand the answer,
then usually they don't need to ask in the first place.

Arne
 
L

Lew

Kevin said:
Don't forget shorthand operators that automatically typecast:

The JLS doesn't call these "typecasts", it calls them "widening
and narrowing conversions", in case you're looking for the rules
at the source.
+=
-=
*=
/=

int a= 0;
a+= Double.MAX_VALUE;
a+= Float.MAX_VALUE;
a+= Long.MAX_VALUE;

The shorthand bit operators automatically typecast length:

This is the same conversion as with += and the rest.
|=
&=
^=

a|= Long.MAX_VALUE;

And please do not top-post.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top