Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java

Le débordement de pile peut toujours définir [(a == 1 && a == 2 && a == 3) sur true](https://stackoverflow.com/questions/48270127/can-a-1-a-2- L'article a-3-ever-evaluer-to-true) est populaire. L'histoire originale est un problème javascript, mais j'ai vu un article faisant le même problème dans Peri, donc je posterai un article pour être sur la tendance.

Actuellement, j'utilise principalement Java dans mon entreprise, j'ai donc réfléchi à la façon de le faire avec Java. Je me demandais si c'était quelque part dans Qiita, alors j'ai attrapé beaucoup de choses, mais [(a == 1 && a == 2 && a == 3) est toujours vrai. Résumé de l'article de Qiita qui a résolu le problème de Stack Overflow]( Pour autant que je puisse voir https://qiita.com/aimof/items/bb786c112f7dcc3be6c9), cela ne semble pas l'être. Alors si vous le trouvez, pourquoi ne pas faire le premier tour? C'est le résultat de l'écrasement de la balle par essais et erreurs.

Solutions possibles

Il semble y avoir diverses solutions. À titre d'exemple, cela ressemble à ceci.

Référence: ((a == 1 && a == 2 && a == 3) peut toujours être vrai?)

J'ai beaucoup essayé pour le moment. Java a des restrictions de codage strictes, n'autorise pas l'omission du style d'écriture qui peut être fait dans d'autres langues et n'implémente souvent pas de fonctions dans d'autres langues, donc fondamentalement cela ne fonctionne pas. ..

Surcharge de l'opérateur ==

Java n'implémente pas de fonctionnalités avancées telles que la surcharge d'opérateurs. C'est en C ++ et Perl.

Faire une fonction

Main.java


public class Main {
	static int i = 1;
	
	public static void main(String[] args) {
		System.out.println(a() == 1 && a() == 2 && a() == 3);
		//true est affiché
	}
	
	static int a() {
		return i++;
	}

}

J'aurais pu le faire si Java avait une fonction comme "Les fonctions sans arguments peuvent omettre ()". Je pense que c'est probablement le plus regrettable.

Faire un objet

En premier lieu, je me fâche quand je ne peux pas comparer un objet avec un type primitif.

		Object a = 1;	
		System.out.println(a == 1 && a == 2 && a == 3); //Erreur de compilation

L'appel d'un champ ou d'une méthode dans un objet ne fonctionne pas car vous devez écrire quelque chose comme ʻa.numberou ʻa.getint ()à la fin.

Il existe des classes pratiques qui peuvent convertir le type d'un objet tel quel. Ceci est une classe wrapper.

		Integer a = 1;
		System.out.println(a == 1); //En interne un.intValue() ==Devenir 1

Ensuite, créez une classe qui hérite de ceci et jouez avec ʻintValue () `! Quand j'ai pensé, je ne pouvais pas en hériter avec la classe finale. C'est vrai.

N'est-il pas possible d'utiliser une règle telle que "Lors de l'utilisation de l'interface de fonction, () peut être omis lorsqu'il n'y a pas d'argument"?

Conclusion

En Java, il est impossible de toujours définir (a == 1 && a == 2 && a == 3) sur true. Si vous connaissez la solution, faites-le moi savoir. .. ..

Postscript

Je l'ai trouvé si je l'ai recherché correctement. Je suis désolé pour tous mes ancêtres. Je veux afficher true même en Java avec un == 1 && a == 2 && a == 3 Je veux afficher true même en Java avec a == 1 && a == 2 && a == 3 (Black Magic) Sortie true avec if (a == 1 && a == 2 && a == 3) en Java (identificateur invisible) Je veux afficher true même en Java avec a == 1 && a == 2 && a == 3 (édition PowerMockito) Je veux afficher true même en Java avec a == 1 && a == 2 && a == 3 (édition noire)

Si vous utilisez PowerMockito, vous pouvez hériter de force Integer.

Recommended Posts

Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
J'ai essayé de créer une fonction de connexion avec Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai créé un client RESAS-API en Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
J'ai essayé de créer une application de conversation en Java à l'aide de l'IA «A3RT»
J'ai essayé de créer une compétence Clova en Java
J'ai créé un PDF avec Java.
Comment créer un conteneur Java
Même en Java, je veux sortir true avec un == 1 && a == 2 && a == 3 (deuxième décoction Javassist)
Comment créer un tableau Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (Black Magic)
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Je voulais penser avoir compris les types personnalisés d'Elm en Java
Comment créer un résumé de calendrier Java
Facile à créer Slack Bot avec Java
Comment créer un robot Discord (Java)
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai créé un programme de jugement des nombres premiers en Java
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
Faites un blackjack avec Java
Deux façons de démarrer un thread en Java + @
J'ai essayé de faire une authentification de base avec Java
Je souhaite envoyer un e-mail en Java.
Comment afficher une page Web en Java
java j'ai essayé de casser un simple bloc
Code pour échapper aux chaînes JSON en Java
Essayez de créer un babillard en Java
[JAVA] Project Euler, je suis resté coincé au Q8, alors prenez note
J'ai écrit un programme de jugement des nombres premiers en Java
J'ai créé un jeu Janken en Java (CLI)
Je voulais mettre en place un diaporama de manière à la mode avec slick.
rsync4j --Je veux toucher rsync en Java.
J'ai essayé de sortir quatre-vingt-dix-neuf en Java
Je veux ForEach un tableau avec une expression Lambda en Java
J'ai essayé de créer une compétence Alexa avec Java
J'ai écrit un programme de factorisation prime en Java
J'ai essayé de casser le bloc avec java (1)
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
Comment créer un environnement Java en seulement 3 secondes
Créez "Je ne suis pas un robot" en Java EE (Jakarta EE)
Je veux faire quelque chose comme "cls" en Java
J'ai essayé d'implémenter la notification push Firebase en Java
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
# 2 [Note] J'ai essayé de calculer quatre-vingt-dix-neuf avec Java.
[Mémo personnel] Créez une copie complète simple avec Java
Comment créer un URI de données (base64) en Java
Je souhaite définir une fonction dans la console Rails
Ce que j'ai appris lors de la création d'un serveur en Java
Sortie true avec if (a == 1 && a == 2 && a == 3) en Java (identifiant invisible)
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
Essayez de résoudre un problème FizzBuzz restreint en Java
Je veux cliquer sur une broche GoogleMap dans RSpec
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java