Is it possible to dynamically set properties of an `Object` using Apex?Pass inner class object as an argument to apex classError: Compile Error: Method does not exist or incorrect signature: [httprequest] methodsExecute Anonymous Error: Getting Started with ApexAdd list of field names from SObjectField into SetMethod does not exist or incorrect signature: void containsKey(Id) from the type Set<Id>create 100K records of custom object using Batch Apex Salesforceunable to pass an object to another method in apexHow to access Class members decorated using get; set; Get Field value from object using string keyHow to addError on the dynamic string field api name

Pressure to defend the relevance of one's area of mathematics

Why is current rating for multicore cable lower than single core with the same cross section?

A possible fake AI on Patreon!

Killing undead fish underwater

Do vanished people know what happened after the snap?

How do Bards prepare spells?

Minimum value of 4 digit number divided by sum of its digits

Sci-fi book: portals appear in London and send a failed artist towards a designated path where he operate a giant superweapon

Sci-fi novel series with instant travel between planets through gates. A river runs through the gates

How does a DHCP relay router forward the packet to the server?

What is the most expensive material in the world that could be used to create Pun-Pun's lute?

How can I place the product on a social media post better?

Are Boeing 737-800’s grounded?

ConTeXt: MetaPost graphic in overlay setups shifts between pages

Hilbert Space and Banach Space

Was it really necessary for the Lunar module LM to have 2 stages?

Examples of non trivial equivalence relations , I mean equivalence relations without the expression " same ... as" in their definition?

How do I deal with a coworker that keeps asking to make small superficial changes to a report, and it is seriously triggering my anxiety?

Realistic Necromancy?

Don’t seats that recline flat defeat the purpose of having seatbelts?

Pulling the rope with one hand is as heavy as with two hands?

"The cow" OR "a cow" OR "cows" in this context

Do I have an "anti-research" personality?

Can solid acids and bases have pH values? If not, how are they classified as acids or bases?



Is it possible to dynamically set properties of an `Object` using Apex?


Pass inner class object as an argument to apex classError: Compile Error: Method does not exist or incorrect signature: [httprequest] methodsExecute Anonymous Error: Getting Started with ApexAdd list of field names from SObjectField into SetMethod does not exist or incorrect signature: void containsKey(Id) from the type Set<Id>create 100K records of custom object using Batch Apex Salesforceunable to pass an object to another method in apexHow to access Class members decorated using get; set; Get Field value from object using string keyHow to addError on the dynamic string field api name






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















Background



I would like to be able to dynamically set properties of an Object (not SObject).



Given this class:



public class Invoice 
public String Ref get; set;



I would like to be able to do this:



Invoice inv = new Invoice();
inv.put('Ref', 'REF123');


But when I do Execute Anonymous Apex with above code, I this error:




ERROR: Compilation failed.

! ERROR: Line: 3, Column: 12

! Method does not exist or incorrect signature: void put(String, String)

! from the type Invoice

ERROR: Execution failed.




Question



  1. Is it possible to dynamically set properties of an Object (not SObject) using Apex?

  2. How would I dynamically set a property of an Object using Apex?









share|improve this question






























    1















    Background



    I would like to be able to dynamically set properties of an Object (not SObject).



    Given this class:



    public class Invoice 
    public String Ref get; set;



    I would like to be able to do this:



    Invoice inv = new Invoice();
    inv.put('Ref', 'REF123');


    But when I do Execute Anonymous Apex with above code, I this error:




    ERROR: Compilation failed.

    ! ERROR: Line: 3, Column: 12

    ! Method does not exist or incorrect signature: void put(String, String)

    ! from the type Invoice

    ERROR: Execution failed.




    Question



    1. Is it possible to dynamically set properties of an Object (not SObject) using Apex?

    2. How would I dynamically set a property of an Object using Apex?









    share|improve this question


























      1












      1








      1








      Background



      I would like to be able to dynamically set properties of an Object (not SObject).



      Given this class:



      public class Invoice 
      public String Ref get; set;



      I would like to be able to do this:



      Invoice inv = new Invoice();
      inv.put('Ref', 'REF123');


      But when I do Execute Anonymous Apex with above code, I this error:




      ERROR: Compilation failed.

      ! ERROR: Line: 3, Column: 12

      ! Method does not exist or incorrect signature: void put(String, String)

      ! from the type Invoice

      ERROR: Execution failed.




      Question



      1. Is it possible to dynamically set properties of an Object (not SObject) using Apex?

      2. How would I dynamically set a property of an Object using Apex?









      share|improve this question
















      Background



      I would like to be able to dynamically set properties of an Object (not SObject).



      Given this class:



      public class Invoice 
      public String Ref get; set;



      I would like to be able to do this:



      Invoice inv = new Invoice();
      inv.put('Ref', 'REF123');


      But when I do Execute Anonymous Apex with above code, I this error:




      ERROR: Compilation failed.

      ! ERROR: Line: 3, Column: 12

      ! Method does not exist or incorrect signature: void put(String, String)

      ! from the type Invoice

      ERROR: Execution failed.




      Question



      1. Is it possible to dynamically set properties of an Object (not SObject) using Apex?

      2. How would I dynamically set a property of an Object using Apex?






      apex object dynamic-apex






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 40 mins ago







      Robs

















      asked 1 hour ago









      RobsRobs

      2,554743




      2,554743




















          1 Answer
          1






          active

          oldest

          votes


















          2














          For some isolated cases - yours is one of them - there is this (ab)use of the serialize methods:



          Invoice inv = (Invoice) JSON.deserialize(JSON.serialize(new Map<<String, Object>
          'Ref' => 'REF123'
          )), Invoice.class);


          Here, the capability of JSON.deserialize to create an instance of the specified type and set the properties of the instance is being used.



          But in general, Apex is missing the map-like behavior for objects or a reflection API.






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "459"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f260323%2fis-it-possible-to-dynamically-set-properties-of-an-object-using-apex%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            For some isolated cases - yours is one of them - there is this (ab)use of the serialize methods:



            Invoice inv = (Invoice) JSON.deserialize(JSON.serialize(new Map<<String, Object>
            'Ref' => 'REF123'
            )), Invoice.class);


            Here, the capability of JSON.deserialize to create an instance of the specified type and set the properties of the instance is being used.



            But in general, Apex is missing the map-like behavior for objects or a reflection API.






            share|improve this answer



























              2














              For some isolated cases - yours is one of them - there is this (ab)use of the serialize methods:



              Invoice inv = (Invoice) JSON.deserialize(JSON.serialize(new Map<<String, Object>
              'Ref' => 'REF123'
              )), Invoice.class);


              Here, the capability of JSON.deserialize to create an instance of the specified type and set the properties of the instance is being used.



              But in general, Apex is missing the map-like behavior for objects or a reflection API.






              share|improve this answer

























                2












                2








                2







                For some isolated cases - yours is one of them - there is this (ab)use of the serialize methods:



                Invoice inv = (Invoice) JSON.deserialize(JSON.serialize(new Map<<String, Object>
                'Ref' => 'REF123'
                )), Invoice.class);


                Here, the capability of JSON.deserialize to create an instance of the specified type and set the properties of the instance is being used.



                But in general, Apex is missing the map-like behavior for objects or a reflection API.






                share|improve this answer













                For some isolated cases - yours is one of them - there is this (ab)use of the serialize methods:



                Invoice inv = (Invoice) JSON.deserialize(JSON.serialize(new Map<<String, Object>
                'Ref' => 'REF123'
                )), Invoice.class);


                Here, the capability of JSON.deserialize to create an instance of the specified type and set the properties of the instance is being used.



                But in general, Apex is missing the map-like behavior for objects or a reflection API.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 47 mins ago









                Keith CKeith C

                97.4k1197220




                97.4k1197220



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Salesforce Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f260323%2fis-it-possible-to-dynamically-set-properties-of-an-object-using-apex%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

                    2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

                    Button changing it's text & action. Good or terrible? The 2019 Stack Overflow Developer Survey Results Are Inchanging text on user mouseoverShould certain functions be “hard to find” for powerusers to discover?Custom liking function - do I need user login?Using different checkbox style for different checkbox behaviorBest Practices: Save and Exit in Software UIInteraction with remote validated formMore efficient UI to progress the user through a complicated process?Designing a popup notice for a gameShould bulk-editing functions be hidden until a table row is selected, or is there a better solution?Is it bad practice to disable (replace) the context menu?