对于参数类型,运算符+未定义double boolean

时间:2018-04-18 15:50:41

标签: java

1.public class Application 
2.{ 
3.  public static void main(String[] args) 
4.    {
5.    int a = 1;
6.    short b = 0;
7.    long c = 34;
8.  
9.    float d = 5.6f;
10.   double e = 3.65;
11. 
12.   char f = 'A';
13. 
14.   boolean g = true;
15. 
16.   byte h = 126;
17.  
18.   System.out.println(a + b + c + d + e + f + g + h);
19.  }  
20.}

第18行,在eclipse中,显示错误

  

“操作符+未定义参数类型(双)布尔”

我只是不想添加它们。我只想用这个输出显示它们:

10345.63.65Atrue126

3 个答案:

答案 0 :(得分:0)

在Java中,布尔本身不会被视为数字,不像Python var requestXml = new XElement("transaction", new XElement("transactionId", "Dummy")); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); byte[] bytes; bytes = System.Text.Encoding.ASCII.GetBytes(XMLSerializer(requestXml)); request.ContentType = "text/xml; encoding=utf-8"; request.ContentLength = bytes.Length; request.Method = "POST"; request.Headers.Add(HttpRequestHeader.Authorization, "Basic" + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("username:password"))); Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); HttpWebResponse response; response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { Stream responseStream = response.GetResponseStream(); string responseStr = new StreamReader(responseStream).ReadToEnd(); return responseStr; } 为1且True为0。

如果您需要此类行为,可以使用False

转换布尔g

编辑: 我误解了你的问题 - 我看到你要连接它们,而不是添加它们。执行此操作的好方法是int i = g ? 1 : 0;

StringBuilder

答案 1 :(得分:0)

要将多个变量连接到一个字符串,只需添加一个空字符串即可。

System.out.println("" + a + b + c + d + e + f + g + h);

这有什么意义?

在java中,向字符串添加内容会将此“something”转换为字符串格式。

不添加字符串,它只是一堆数字和“+”符号,这是基本的数学。

答案 2 :(得分:0)

请参阅jls

  

运算符+和 - 称为加法运算符。

     

如果+运算符的任一操作数的类型是String,那么   操作是字符串连接。

     

否则,+运算符的每个操作数的类型必须是   可转换的类型(§5.1.8)到原始的数字类型,或者a   发生编译时错误。

boolean不是数字类型,因此您会收到此编译错误。

您可以在语句末尾添加空字符串,结果将转换为字符串:

System.out.println(a + b + c + d + e + f + g + h + "");