2017-03-07 7 views
0

私は自分のクラスタイプのリストにオブジェクトのリストをキャストしようとしています。これまでのところ、私がやっていることは次のとおりです。Javaキャストリスト<Object>リスト<Entity>

List<Company> companies = (List<Company>)(Object) repository.findAllCompanyNames(); 

repository.findAllCompanyNames()List<Object>

私の会社のクラスを返して次のようになります。

public class Company { 

    public Company(){} 

    public Company(int id, String name){ 
     this.id = id; 
     this.name = name; 
    } 

    public int id; 
    public String name; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

私は問題がある任意のエラー値を得ることはありませんキャスト後のcompaniesの値は、

companies = {[email protected]} size = 4 
0 = {Object[2]@11753} 
    0 = {[email protected]} "1" 
    1 = "Company 1" 
1 = {Object[2]@11754} 
    0 = {[email protected]} "3" 
    1 = "Company 3" 
2 = {Object[2]@11755} 
    0 = {[email protected]} "4" 
    1 = "Company TT" 
3 = {Object[2]@11756} 
    0 = {[email protected]} "5" 
    1 = "Company 34" 
4 = {Object[2]@11757} 

は、と私は思うような会社のオブジェクト含まれている必要がありcompaniesリスト:それは何が起こっている

- Id: 1 
- Name: Company 1 
- etc .. 

任意のアイデアを?

+0

しかし、そこに示されているものから、それを含んでいますか?クラス自体からの追加ハッシュコードと 'List'からのハッシュコードを表示しています。 – SomeJavaGuy

+6

キャストしてもオブジェクトはまったく変更されません... –

+0

'repository.findAllCompanyNames'は実際に何を返していますか?それが会社を返していない場合は、キャスティングは何かを変更しません。 –

答えて

3

いいえ、会社名は検索していないのでリストにはCompanyのオブジェクトが含まれてはいけません。このメソッドはfindAllCompanyNames()と呼ばれ、List<Object[]>(実行時型)を返します。各要素には、おそらく会社IDと会社名が含まれています。

リポジトリクラスを表示する場合は、より明白なはずです。必要な会社オブジェクトを返すメソッドが見つかるでしょう。

0

java-8を使用できますか?あなただけのstreamを使用してList<Company>List<Object[]>を変換することができます。

List<Object[]> companies = Arrays.asList(
      new Object[]{1, "Company nam 1"}, 
      new Object[]{2, "Company nam 2"} 
); 

今、我々はList<Company>companiesを変換することができます:

List<Company> companyList = companies.stream().map(
       o -> new Company((Integer) o[0], (String) o[1]) 
).collect(Collectors.toList()); 

私はこのことができます願っています。

関連する問題