0

こんにちは、Salesforce.com プラットフォームの初心者です

私はApexクラスを書きました:

public class FieldSetDemonstration {

public Resource__c merch { get; set; }

public FieldSetDemonstration() {
    this.merch = getMerchandise();
}

public List<Schema.FieldSetMember> getFields() {
    return SObjectType.Resource__c.FieldSets.Hello2.getFields();
}

private Resource__c getMerchandise() {
    String query = 'SELECT ';
    for(Schema.FieldSetMember f : this.getFields()) {
        query += f.getFieldPath() + ', ';
    }
    query += 'Id  FROM Resource__c LIMIT 1';
    System.debug('Hello world debug log');
    Resource__c res= Database.query(query);
    System.debug('Hello World Debug log'+''+res.name);
    return res;
}
}

これは、正しい res.name 値を与える visualforce ページ コントローラーのコントローラー クラスですが、デバッグ コンソールでは、Hello world デバッグ ログしか取得できません。デバッグ コンソールに res.name の値が表示されない理由を教えてください。デバッグ目的で表示する方法は?

4

1 に答える 1

0

最後に、System.debug() で res.name を使用する代わりに、res.get('Name') を使用する必要があることを発見しました

public class FieldSetDemonstration {

public Resource__c 商品 { get; 設定; }

public FieldSetDemonstration() { this.merch = getMerchandise(); }

public List getFields() { return SObjectType.Resource__c.FieldSets.Hello2.getFields(); }

private Resource_ c getMerchandise() { String query = 'SELECT '; for(Schema.FieldSetMember f : this.getFields()) { クエリ += f.getFieldPath() + ', '; } query += 'Id FROM Resource _c LIMIT 1'; System.debug('Hello world デバッグ ログ'); Resource__c res= Database.query(クエリ); System.debug('Hello World デバッグ ログ'+''+res.get('名前')); res を返します。} }

このコードは正常に動作しています

于 2012-12-03T19:03:20.723 に答える