Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #17044
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!transit4.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail |
|---|---|
| From | "Donkey Hottie" <donkey.hottie@1:261/38.remove-yy0-this> |
| Subject | Type of a generic class? |
| Message-ID | <501C1560.56003.calajapr@time.synchro.net> (permalink) |
| X-Comment-To | All |
| Newsgroups | comp.lang.java.programmer |
| X-FTN-AREA | COMP.LANG.JAVA.PROGRAMMER |
| X-FTN-MSGID | 1:261/38 e0d18a7f |
| Content-Type | text/plain; charset=IBM437 |
| Content-Transfer-Encoding | 8bit |
| X-Gateway | time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] |
| Lines | 67 |
| Date | Fri, 03 Aug 2012 18:54:10 GMT |
| NNTP-Posting-Host | 69.21.70.65 |
| X-Complaints-To | news@tds.net |
| X-Trace | newsreading01.news.tds.net 1344020050 69.21.70.65 (Fri, 03 Aug 2012 13:54:10 CDT) |
| NNTP-Posting-Date | Fri, 03 Aug 2012 13:54:10 CDT |
| Organization | tds.net |
| Xref | csiph.com comp.lang.java.programmer:17044 |
Show key headers only | View raw
From: Donkey Hottie <donkey@fredriksson.dy.fi>
I have this class called Global. It is trying to be a simplistic simulation of
global as in MUMPS/M language. It is a persistent variable, that is accessible
everywhere, and retains it's value over time. I store them in a database.
First problem I have is to translate the type to a lower level application API
call. I can not leave the cast or type conversion to compiler only.
For that I figured out that I may need a variable of Class<T>, I'm using the
variables isAssignableFrom(Class) to find out the correct API call. Could there
be a simpler way?
the final Class<T> as a member variable. Is that really needed? How could I use
some typeinfo (reflection API?) instead?
If I could use serialization and store the objects that way maybe into BLOBs
there would not be problems, but currently I can not do that.
I would like to get rid of that "klass" argument for the Global<T>. Any ideas?
Class is a simple version containg only the important parts.
public class Global<T extends Object> {
final String name ;
final Connection conn ;
final Class<T> klass;
public Global(String name, Connection conn, Class<T> klass)
{
this.name = name ;
this.conn = conn ;
this.klass = klass;
}
@SuppressWarnings("unchecked")
public T get() throws Exception
{
T rc = null;
if (klass.isAssignableFrom(Boolean.class))
{
rc = (T)SystemProperties.getSystemBoolean(name, conn);
}
else if(klass.isAssignableFrom(Date.class))
{
rc = (T)SystemProperties.getSystemDate(name, conn);
}
else if (klass.isAssignableFrom(Long.class))
{
rc = (T)SystemProperties.getSystemLong(name, conn);
}
else if (klass.isAssignableFrom(Integer.class))
{
rc = (T)SystemProperties.getSystemInt(name, conn);
}
else if (klass.isAssignableFrom(String.class))
{
rc = (T)SystemProperties.getSystemString(name, conn);
}
return rc ;
}
}
--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread
Type of a generic class? "Donkey Hottie" <donkey.hottie@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "Lew" <lew@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "markspace" <markspace@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "Donkey Hottie" <donkey.hottie@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "Lew" <lew@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "markspace" <markspace@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "Donkey Hottie" <donkey.hottie@1:261/38.remove-yy0-this> - 2012-08-03 18:54 +0000
Re: Type of a generic class? "Donkey Hottie" <donkey.hottie@1:261/38.remove-5qr-this> - 2012-08-04 18:41 +0000
csiph-web