Categories
discuss

What are the differences between “generic” types in C++ and Java?

Java has generics and C++ provides a very strong programming model with templates. So then, what is the difference between C++ and Java generics?

Answer

There is a big difference between them. In C++ you don’t have to specify a class or an interface for the generic type. That’s why you can create truly generic functions and classes, with the caveat of a looser typing.

template <typename T> T sum(T a, T b) { return a + b; }

The method above adds two objects of the same type, and can be used for any type T that has the “+” operator available.

In Java you have to specify a type if you want to call methods on the objects passed, something like:

<T extends Something> T sum(T a, T b) { return a.add ( b ); }

In C++ generic functions/classes can only be defined in headers, since the compiler generates different functions for different types (that it’s invoked with). So the compilation is slower. In Java the compilation doesn’t have a major penalty, but Java uses a technique called “erasure” where the generic type is erased at runtime, so at runtime Java is actually calling …

Something sum(Something a, Something b) { return a.add ( b ); }

So generic programming in Java is not really useful, it’s only a little syntactic sugar to help with the new foreach construct.

EDIT: the opinion above on usefulness was written by a younger self. Java’s generics help with type-safety of course.

Categories
discuss

XML serialization in Java? [closed]

What is the Java analogue of .NET’s XML serialization?

Answer

2008 Answer
The “Official” Java API for this is now JAXB – Java API for XML Binding. See Tutorial by Oracle. The reference implementation lives at http://jaxb.java.net/

2018 Update
Note that the Java EE and CORBA Modules are deprecated in SE in JDK9 and to be removed from SE in JDK11. Therefore, to use JAXB it will either need to be in your existing enterprise class environment bundled by your e.g. app server, or you will need to bring it in manually.

Categories
discuss

How to transform a WebService call that is using behaviours?

We have some really old code that calls WebServices using behaviours (webservice.htc), and we are having some strange problems… since they’ve been deprecated a long time ago, I want to change the call.

What’s the correct way of doing it? It’s ASP.NET 1.1

Answer

You should be able to generate a proxy class using wsdl.exe. Then just use the web service as you normally would.

Categories
discuss

Best practices with jQuery form binding code in an application

We have an application with a good amount of jQuery JSON calls to server side code. Because of this, we have a large amount of binding code to parse responses and bind the appropriate values to the form. This is a two part question.

  1. What is the reccomended approach for dealing with a large number of forms that all have different data. Right now were are trying to take a structured approach in setting up a js “class” for each page, with an init, wireClickEvents etc.. to try to have everything conformed.

  2. Is there any “best practices” with creating repetitive jQuery code or any type of reccomended structure other than just throwing a bunch of functions in a js file?

Answer

Not 100% sure example what you are asking, but personally, and I use MochiKit, I create JavaScript “classes” (or widgets, if you prefer) for every significant client-side UI structure. These know, of course, how to populate themselves with data.

I don’t know what more there is to say – writing UI code for the browser in JavaScript is no different than writing UI code for other types of apps, as far as I am concerned. Build classes and instantiate them as needed, populate them with data, have them throw events, etc. etc.

Am I up in the night on this? 🙂


EDIT: In other words, yes – do what you are doing, for the most part. I see too many novice JavaScript hackers write a bunch of poorly-cohesive functions that don’t appear to be a part of anything specific other than they are all in a single file. Hope that makes sense.

Categories
discuss

What more is needed for Ajax than this function

I have a small JS function that does Ajax for me and another like it that adds in POST data to the request. With Ajax being such a big topic with so many libraries about it, what am I missing from my function, is it insecure or something else worrying?

function loadPage(pagePath, displayElement)
{
    var xmlHttp;

    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }

    xmlHttp.onreadystatechange=function()
    {
        if(xmlHttp.readyState==4)
        {
            document.getElementById(displayElement).innerHTML = xmlHttp.responseText;
        }
    }

    xmlHttp.open("GET", pagePath, true);
    xmlHttp.send(null);
}

Answer

I strongly recommend you not roll your own Ajax code. Instead, use a framework such as Prototype, Dojo, or any of the others. They’ve taken care of handling all the ReadyStates you’re not handling (2 means it’s been sent, 3 means it’s in process, etc.), and they should escape the reponse you’re getting so you don’t insert potentially insecure javascript or something into your page.

Another thing a more robust framework will give you is the ability to do more than just use innerHTML to replace items in the DOM. Your function here can only be used to replace one element with the response from the ajax call. There’s a lot more you can do with Ajax.

Source: stackoverflow
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Privacy Policy, and Copyright Policy. Content is available under CC BY-SA 3.0 unless otherwise noted. The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 © No Copyrights, All Questions are retrived from public domain..