由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - type conversions
相关主题
Questions on EJB3 Persistence/HibernateRe: Can Web Services return Hash or Obje
如何传递secret key有多少人对annotation这个东西不满,请举手!!
writeObject()的时候出现NotSerializableException是怎么回事?java and javascript 问题请教,有包子
问一个SCJP 题目其实有没有而已解释一下java ee是什么
What's the relationship between Enterprise JavaBeRe: Challenge: Who can solve this problem? Thanx
legacy code里竟然还有scriplet,sighmarshall 和 serialize 的区别?
为什么大家都要用delimted string穿value呢?请问一个serialize class object下载运行的问题
Anybody here used apache Lucene?Object stream & serilization有啥用处?
相关话题的讨论汇总
话题: dataset话题: list话题: class话题: extends
进入Java版参与讨论
1 (共1页)
t*******t
发帖数: 105
1
Dataset ds = (Dataset) new GctParser().parse();
Gctparser.parse()返回的是一个List,而Dataset是一个interface,这种转换的细节是
在什么地方写出来的啊?
多谢!google了type conversion,结果是讲 int -》double。
w*******o
发帖数: 6125
2
You can only do CASTing between super class and sub class,
if you really need to transport this "List" to a "DataSet"
you need to have an adapter pattern, but still, it's not
a "casting" per se

节是

【在 t*******t 的大作中提到】
: Dataset ds = (Dataset) new GctParser().parse();
: Gctparser.parse()返回的是一个List,而Dataset是一个interface,这种转换的细节是
: 在什么地方写出来的啊?
: 多谢!google了type conversion,结果是讲 int -》double。

g*****g
发帖数: 34805
3
List也是一个interface,Dataset既然是Interface,
你可以查Dataset源码,多半extends List

节是

【在 t*******t 的大作中提到】
: Dataset ds = (Dataset) new GctParser().parse();
: Gctparser.parse()返回的是一个List,而Dataset是一个interface,这种转换的细节是
: 在什么地方写出来的啊?
: 多谢!google了type conversion,结果是讲 int -》double。

t*******t
发帖数: 105
4
恍然大悟。。。

【在 w*******o 的大作中提到】
: You can only do CASTing between super class and sub class,
: if you really need to transport this "List" to a "DataSet"
: you need to have an adapter pattern, but still, it's not
: a "casting" per se
:
: 节是

t*******t
发帖数: 105
5
Dataset extends PersistentObject(an interface, written by the author)
PersistenObject extends Serializable
i am really confused now.. i guess tomorrow i will follow this clue. thanks!

【在 g*****g 的大作中提到】
: List也是一个interface,Dataset既然是Interface,
: 你可以查Dataset源码,多半extends List
:
: 节是

F****n
发帖数: 3271
6
Being a List doesn't prevent a class from implementing Dataset. A class can
implement multiple interfaces.

thanks!

【在 t*******t 的大作中提到】
: Dataset extends PersistentObject(an interface, written by the author)
: PersistenObject extends Serializable
: i am really confused now.. i guess tomorrow i will follow this clue. thanks!

o**1
发帖数: 6383
7
yes, 楼主好像把extends 和 implements 搞混了。

can

【在 F****n 的大作中提到】
: Being a List doesn't prevent a class from implementing Dataset. A class can
: implement multiple interfaces.
:
: thanks!

t*******t
发帖数: 105
8
thanks for reminding.
我今天又研究了一下这个问题,仍然搞不清楚为什么那个作者轻易的把一个List cast到
一个Dataset。 我觉得这个问题的关键是搞清楚List到dataset有没有extend或者imple
ment,但是今天看了一下,确实没有,除开他们都是Object的subclass或者subinterfa
ce。
我还有一个高不清楚的地方是,我看了这个作者的代码,几乎90%的class都要extends一
个PersistentObject,用来搞serialization。 这个application是一个用于科学计算
的小软件,我搞不清楚为什么他要求所有的class都要serialization。

【在 o**1 的大作中提到】
: yes, 楼主好像把extends 和 implements 搞混了。
:
: can

m******t
发帖数: 2416
9

cast到
imple
subinterfa
No way, Dataset has _got_ to either extend or implement List for
the casting to work.
Is this some open source software? Can you point us to the source code?

【在 t*******t 的大作中提到】
: thanks for reminding.
: 我今天又研究了一下这个问题,仍然搞不清楚为什么那个作者轻易的把一个List cast到
: 一个Dataset。 我觉得这个问题的关键是搞清楚List到dataset有没有extend或者imple
: ment,但是今天看了一下,确实没有,除开他们都是Object的subclass或者subinterfa
: ce。
: 我还有一个高不清楚的地方是,我看了这个作者的代码,几乎90%的class都要extends一
: 个PersistentObject,用来搞serialization。 这个application是一个用于科学计算
: 的小软件,我搞不清楚为什么他要求所有的class都要serialization。

c*****t
发帖数: 1879
10
给你个例子:
class A implements Dataset, List { }
写 code 的人知道那个 parse 返回的是什么 class 。不过这不是好的写法。

cast到
imple
subinterfa
extends一

【在 t*******t 的大作中提到】
: thanks for reminding.
: 我今天又研究了一下这个问题,仍然搞不清楚为什么那个作者轻易的把一个List cast到
: 一个Dataset。 我觉得这个问题的关键是搞清楚List到dataset有没有extend或者imple
: ment,但是今天看了一下,确实没有,除开他们都是Object的subclass或者subinterfa
: ce。
: 我还有一个高不清楚的地方是,我看了这个作者的代码,几乎90%的class都要extends一
: 个PersistentObject,用来搞serialization。 这个application是一个用于科学计算
: 的小软件,我搞不清楚为什么他要求所有的class都要serialization。

相关主题
legacy code里竟然还有scriplet,sighRe: Can Web Services return Hash or Obje
为什么大家都要用delimted string穿value呢?有多少人对annotation这个东西不满,请举手!!
Anybody here used apache Lucene?java and javascript 问题请教,有包子
进入Java版参与讨论
t*******t
发帖数: 105
11
谢谢!
这个是源代码。
那一行代码在:
src\xexamples\GseaExample.java
的第一行
thanks!

【在 c*****t 的大作中提到】
: 给你个例子:
: class A implements Dataset, List { }
: 写 code 的人知道那个 parse 返回的是什么 class 。不过这不是好的写法。
:
: cast到
: imple
: subinterfa
: extends一

t*******t
发帖数: 105
12


【在 t*******t 的大作中提到】
: 谢谢!
: 这个是源代码。
: 那一行代码在:
: src\xexamples\GseaExample.java
: 的第一行
: thanks!

t*******t
发帖数: 105
13


【在 t*******t 的大作中提到】

t*******t
发帖数: 105
14
hi. thank you for your information
i have attached the source codes.

【在 m******t 的大作中提到】
:
: cast到
: imple
: subinterfa
: No way, Dataset has _got_ to either extend or implement List for
: the casting to work.
: Is this some open source software? Can you point us to the source code?

A**o
发帖数: 1550
15
read your source code,
it's not what you said. it's actually returned you an object.
Dataset ds = (Dataset) new GctParser().parse().get(0);
the parse() does give you a List
but the get gives you an Object before being casted...
No surprises. Over and out.

节是

【在 t*******t 的大作中提到】
: Dataset ds = (Dataset) new GctParser().parse();
: Gctparser.parse()返回的是一个List,而Dataset是一个interface,这种转换的细节是
: 在什么地方写出来的啊?
: 多谢!google了type conversion,结果是讲 int -》double。

m******t
发帖数: 2416
16

Good catch. I missed that in my "no way" statement.
Now that could be a rather tricky (not necessarily good)
interview question. 8-)

【在 c*****t 的大作中提到】
: 给你个例子:
: class A implements Dataset, List { }
: 写 code 的人知道那个 parse 返回的是什么 class 。不过这不是好的写法。
:
: cast到
: imple
: subinterfa
: extends一

A**o
发帖数: 1550
17
well, the actually case was rather straight forward. :p

【在 m******t 的大作中提到】
:
: Good catch. I missed that in my "no way" statement.
: Now that could be a rather tricky (not necessarily good)
: interview question. 8-)

t*******t
发帖数: 105
18
thanks!
Following you clue, I finally figured out the reason:
the parse() returns:
return unmodlist(new PersistentObject[]{ds});
ds is of the type Dataset, which is an interface that extends PersistentObje
ct.
But i am curious why the author put it this way.
actually the source code for unmodlist is:
/**
* Utility method to place specified pobs in an unmodifiable list
*/
protected static List unmodlist(PersistentObject[] pobs) {
List list = new ArrayList(pobs.length);


【在 A**o 的大作中提到】
: read your source code,
: it's not what you said. it's actually returned you an object.
: Dataset ds = (Dataset) new GctParser().parse().get(0);
: the parse() does give you a List
: but the get gives you an Object before being casted...
: No surprises. Over and out.
:
: 节是

m******t
发帖数: 2416
19

a
These days I always make my classes Serializable by default, unless it's
clearly
not serializable, or doesn't make sense to be. You never know when they
might
be sent over wire.
That said, I don't necessarily agree with making them all extend the same
base class...

【在 t*******t 的大作中提到】
: thanks!
: Following you clue, I finally figured out the reason:
: the parse() returns:
: return unmodlist(new PersistentObject[]{ds});
: ds is of the type Dataset, which is an interface that extends PersistentObje
: ct.
: But i am curious why the author put it this way.
: actually the source code for unmodlist is:
: /**
: * Utility method to place specified pobs in an unmodifiable list

t*******t
发帖数: 105
20
I just googled "send over wire", it looks like serialization benefits RMI.
The src code i provided is actually for a client/server model application. S
o, the serialization is an essential part for this network application. Is t
his correct?
thanks

【在 m******t 的大作中提到】
:
: a
: These days I always make my classes Serializable by default, unless it's
: clearly
: not serializable, or doesn't make sense to be. You never know when they
: might
: be sent over wire.
: That said, I don't necessarily agree with making them all extend the same
: base class...

m******t
发帖数: 2416
21

Most of the network transportation mechanisms used in Java, including
RMI, require objects to be serializable to begin with. Serializable objects
can also be easily persisted into byte streams, which is useful for example
when replicating http sessions.
S
t
Right. The author must have some stronger reason to have a base class though
.

【在 t*******t 的大作中提到】
: I just googled "send over wire", it looks like serialization benefits RMI.
: The src code i provided is actually for a client/server model application. S
: o, the serialization is an essential part for this network application. Is t
: his correct?
: thanks

1 (共1页)
进入Java版参与讨论
相关主题
Object stream & serilization有啥用处?What's the relationship between Enterprise JavaBe
What about RMI/IIOP? Is that part of EJB specificlegacy code里竟然还有scriplet,sigh
Re: EJB vs Corba为什么大家都要用delimted string穿value呢?
Re: print problem, GUI guru please come inAnybody here used apache Lucene?
Questions on EJB3 Persistence/HibernateRe: Can Web Services return Hash or Obje
如何传递secret key有多少人对annotation这个东西不满,请举手!!
writeObject()的时候出现NotSerializableException是怎么回事?java and javascript 问题请教,有包子
问一个SCJP 题目其实有没有而已解释一下java ee是什么
相关话题的讨论汇总
话题: dataset话题: list话题: class话题: extends