<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<font size="4" face="monospace">Yes, these were considered, and
dismissed with prejudice, in part because the model implied by
readInt and readDouble is a problematic one, because it greatly
complicates the "reading state" that has to be understood by the
user (e.g., what if there's no digits on the line, does it read
another line? what if the digits end mid-line, does it leave the
cursor there? what if it consumes all the characters on the line,
and then you read a string?) These are issues that invariably
trip up beginners and experienced users alike. <br>
<br>
The locution you suggest, which is to use readln() to read a line
into a String, then parseInt() to convert to an int, is more wordy
than some of the alternatives, but much clearer and simpler as to
what is going on, because it composes two simple functions (read a
string, convert a string to an int). This is good for beginners,
because they can see that there are steps here to get the data
into the form they want. The readInt() method provides the
illusion of simplicity, but ends up moving significant complexity
to where we are more likely to trip over it in the dark.<br>
<br>
I'm not saying there will never be a richer way to do this, but
readInt() and friends are definitely not it.<br>
<br>
More generally, one of the worst things about creating an IO class
is that it immediately becomes target for a flood of "can you
just add my one favorite method" requests. We might add a few
more methods to it in the next decade. But we also might not;
less is more.<br>
</font><br>
<br>
<div class="moz-cite-prefix">On 11/7/2024 12:06 PM, Barry Burd
wrote:<br>
</div>
<blockquote type="cite" cite="mid:a0b8e796-5592-4581-90aa-f673d794240e@drew.edu">I see
that parameterless println() and readln() methods are being added
to java.io.IO in JEP 495. I'm still wondering if there's been any
thought to including methods like readInt and readDouble. In the
early stage of an introduction to Java, it's common to have the
student input int values and double values for simple examples.
With the current spec, the best way to do this (as far as I can
see) is
<br>
<br>
var n = Integer.parseInt(readln("Enter a number"));
<br>
<br>
It seems natural to simplify this with a readInt method, and the
addition of such a method wouldn't weigh heavily on the java.io.IO
package.
<br>
Any thoughts?
<br>
--Barry
<br>
</blockquote>
<br>
</body>
</html>